我需要搜索整个单词不是他们使用SQL LIKE来匹配完整的单词
$q = $_GET['q'];
SELECT * FROM table WHERE column LIKE '% $q %'
的一部分。例如,如果$q = mag
它不应该找杂志 我已经试过了用户发布的解决方案,但它没“科技工作
像正则表达式和CONCAT
PS:我的数据库列是一个大的文本
我需要搜索整个单词不是他们使用SQL LIKE来匹配完整的单词
$q = $_GET['q'];
SELECT * FROM table WHERE column LIKE '% $q %'
的一部分。例如,如果$q = mag
它不应该找杂志 我已经试过了用户发布的解决方案,但它没“科技工作
像正则表达式和CONCAT
PS:我的数据库列是一个大的文本
我不知道这是否会解决您的问题,或者你已经尝试过,但给它一个尝试, 查找单词边界具有以下REGEXP
SELECT * FROM table WHERE column RLIKE "[[:<:]]$q[[:>:]]";
它在我的查询返回任何 –
,你可以做一个事情。你可以打印查询,并直接在phpMyAdmin –
我没有运行..它曾在第一 –
不要使用LIKE
...在这种情况下仅使用比较。事情是这样的:
SELECT * FROM table WHERE column = '$q';
,OP想要那个'“富barbaz b AZ巴兹“'将为'发现”“',而不是'”栏“',所以它不是平等 –
但用户说,当'$ Q ='mag''然后抓取行包含'mag'而不是'magazine'。只是作为'magazine'这个简单的查询会给输出。 @AlmaDo ..可能是我误会了...不知道 –
'$ q'我得到它从URL用户在文本框写整个单词不是它的一部分@Butterfruit –
如果你的话用空格分开,然后加两侧空间:
SELECT *
FROM table
WHERE concat(' ', column, ' ') LIKE '% $q %';
MATCH()只适用于myiasm数据库类型,虽然没有 – Dave