Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用LIKE在mysql中搜索精确的单词_Php_Mysql - Fatal编程技术网

Php 使用LIKE在mysql中搜索精确的单词

Php 使用LIKE在mysql中搜索精确的单词,php,mysql,Php,Mysql,请帮忙。, 假设我想搜索“墨水”这个词 当我使用LIKE时,每个单词上都有“墨水”字母,包括“褶皱” 如果我使用REGEXP,我将只得到第一个单词为“INK”的结果 我需要能够搜索准确的单词,例如“BLAAAH INK Blah”,这个产品将显示,因为它有单词INK.,所以“INK Blah Blah” 我不能使用全文。有没有一种方法可以使用像..这样的语言来实现这一点 提前感谢..:)使用如%INK%(带前导空格和尾随空格)查询将 SELECT * FROM table_name WHERE

请帮忙。, 假设我想搜索“墨水”这个词

当我使用LIKE时,每个单词上都有“墨水”字母,包括“褶皱”

如果我使用REGEXP,我将只得到第一个单词为“INK”的结果

我需要能够搜索准确的单词,例如“BLAAAH INK Blah”,这个产品将显示,因为它有单词INK.,所以“INK Blah Blah”

我不能使用全文。有没有一种方法可以使用像..这样的语言来实现这一点


提前感谢..:)

使用
如%INK%
(带前导空格和尾随空格)

查询将

SELECT * FROM table_name
WHERE column_name LIKE 'INK %' 
    OR column_name LIKE '% INK' 
    OR column_name LIKE '% INK %'

可以使用以下regexp查找单词:

... WHERE your_column REGEXP '[[:<:]]ink[[:>:]]' ;
…其中您的_列REGEXP'[[::]];

[[::]]
匹配单词边界。

您的正则表达式查询是什么样子的?“我不能使用全文。”“-为什么不呢?因为我不被允许…Regexp是一个更好的答案,你只需要正确的Regexp。OP确实演示了他/她尝试了什么,为什么它不起作用,并且提供了几个例子,说明了他/她在各种情况下期望的结果。我不认为这个问题是离题的。然而,一些他/她实际尝试过的代码是受欢迎的。那么在一句话的末尾,比如“INK”呢?@Phil OP想匹配
INK
而不是
INK.
:)@Phil或列名称,如“%INK.”“INK.”仍然是句子中的“INK”一词。例如,“数字媒体不使用墨水。”。你真的应该使用
全文
,但除此之外,一个带有单词边界标志的正则表达式,例如
\bINK\b
@Neeraj有太多可能的语法变体,使之与
或类似的组合成为可能…
这与“墨水”不匹配在字符串的开头或结尾,还有其他语法方面的考虑。哎哟,对了,如果单词“INK”在开头或结尾,这与项目不匹配。。。tskcolumn_name='INK'。这个条件不存在,我这样做对吗$fetch=mysql\u查询(“从prodname REGEXP[[::]]所在的项目中选择*”;不,对不起,我忘了报价。这些标记必须在您的正则表达式中,请在答案中查看我的更新。代码正在运行。但是,当我在变量ex.$product.中放入“INK”时,我收到一个错误…啊,收到了,我缺少一个括号:)@用户,只写“我有一个错误…”而不写任何细节是没有用的。但很高兴你找到了丢失的括号。
... WHERE your_column REGEXP '[[:<:]]ink[[:>:]]' ;