我有这个问题:
select name, body
from news
where body like %MyWord%;
我使用MySQL数据库引擎。此查询将在正文中找到MyWord时返回名称,正文。
我的问题在于,当我在正文中搜索两个单词时,如MyWord1,MyWord2。或更多!!!
如果你知道这个查询是按函数调用的话我怎么能这样做(我不能一直修改那个查询)。
答案 0 :(得分:1)
如果您需要更多关于文本搜索模式的功能,则应在MySQL中使用FULL-TEXT-SEARCH并使用正确的索引。
如果您需要,您将能够一次搜索两个或更多单词。
答案 1 :(得分:0)
你可以使用一些邪恶的SQL注入(种类):)
我假设您将“MyWord”传递给包含您不能(“不能”或“不喜欢”??)更改的查询的函数。如果“MyWord”看起来像这样,会发生什么:
MyWord1% OR body like %MyWord2
邪恶,我知道,你已被警告过;)
答案 2 :(得分:0)
如果你想找到两个不同的词,你可以这样做:
select name, body
from news
where body like %MyWord1% and body like %MyWord2%;
但是,很快就会变得非常不具备性能,您可以查看其他一些选项: