Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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 MySQL搜索词,如果%100等于我搜索的词;bat";而我看到的是;“蝙蝠侠”;结果_Php_Mysql_Sql_Database_Phpmyadmin - Fatal编程技术网

PHP MySQL搜索词,如果%100等于我搜索的词;bat";而我看到的是;“蝙蝠侠”;结果

PHP MySQL搜索词,如果%100等于我搜索的词;bat";而我看到的是;“蝙蝠侠”;结果,php,mysql,sql,database,phpmyadmin,Php,Mysql,Sql,Database,Phpmyadmin,PHP MySQL搜索词,如果%100等于我搜索的单词“bat”,我在结果中看到“batman”。我只想列出标题是否包含“蝙蝠”,我不想列出标题是否包含“蝙蝠侠” 我试过很多方法。我解决不了这个问题。如何才能解决这个问题?我不明白为什么会有这样的结果。此代码位于下面的列表中。从现在开始谢谢你的建议 $sql = "SELECT * FROM `tablename` WHERE `title` LIKE '%bat%' ORDER BY RAND() LIMIT 30;"; 如果您只希望标题与单

PHP MySQL搜索词,如果%100等于我搜索的单词“bat”,我在结果中看到“batman”。我只想列出标题是否包含“蝙蝠”,我不想列出标题是否包含“蝙蝠侠”

我试过很多方法。我解决不了这个问题。如何才能解决这个问题?我不明白为什么会有这样的结果。此代码位于下面的列表中。从现在开始谢谢你的建议

$sql = "SELECT * FROM `tablename` WHERE `title` LIKE '%bat%' ORDER BY RAND() LIMIT 30;";

如果您只希望标题与单词“bat”相等:

现在,如果您希望标题包含单词“bat”,而不是包含它的单词,您可以尝试以下方法:

$sql = "SELECT * FROM `tablename` 
        WHERE `title` LIKE '% bat %' 
        ORDER BY RAND() LIMIT 30;";
或者使用
REGEXP

$sql = "SELECT * FROM `tablename` 
        WHERE `title` RLIKE '[[:<:]]bat[[:>:]]' 
        ORDER BY RAND() LIMIT 30;";
$sql=“从'tablename'中选择*
其中`title`RLIKE'[[::]]
按兰德订购()限制30;“;

但在这种情况下,它是这个问题的重复:

最简单的方法是使用正则表达式来匹配确切的单词
bat

where `title` REGEXP '[[:<:]]bat[[:>:]]' 
where`title`REGEXP'[[::]]

[[::]]
是单词边界,
bla-bat,bla
通过,
batman
abat
不会通过

%
符号意味着可以放置任何字符来代替它。搜索
%bat%
意味着查找其中包含
bat
的所有字符串。$sql=“SELECT*FROM
tablename
其中
title
='bat'ORDER BY RAND()LIMIT 30;”;如果您想要精确的结果,请不要使用like。如果您只希望title equat为“bat”,为什么不执行
其中title=bat
?您不需要在此处使用like。您可以在查询中简单地使用等于(title=bat)。OP似乎想要“蝙蝠年”和“蝙蝠坐在猫上”,但不想要“战舰”。这就是说,我同意OP在这方面还不清楚OP希望搜索词出现在标题中,而不是标题与搜索词相等。他希望“如果%100等于单词,则搜索单词”,如果他搜索“蝙蝠”,他不想要“蝙蝠侠”,而只想要带有“蝙蝠”的标题,那么为什么
title='bat'
不好呢?下面有一个小讨论证实了我的说法。你可以编辑你的答案来解释这些澄清。是的,这是工作。非常感谢其中
title
类似于“%bat%night%”,@Berk很乐意帮助您,但您的问题与其他问题重复:)
where `title` REGEXP '[[:<:]]bat[[:>:]]'