PHP MySQL搜索词,如果%100等于我搜索的词;bat";而我看到的是;“蝙蝠侠”;结果
PHP MySQL搜索词,如果%100等于我搜索的单词“bat”,我在结果中看到“batman”。我只想列出标题是否包含“蝙蝠”,我不想列出标题是否包含“蝙蝠侠” 我试过很多方法。我解决不了这个问题。如何才能解决这个问题?我不明白为什么会有这样的结果。此代码位于下面的列表中。从现在开始谢谢你的建议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;"; 如果您只希望标题与单
$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*FROMtablename
其中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[[:>:]]'