我遇到了关于sql查询的问题。如果单词sql查询可以检测到字符串,但如果我在字符串中添加多个单词,则不会显示任何结果。
SELECT * FROM rules WHERE keyword LIKE CONCAT('%','$message','%')
输入1(显示结果)
$message = "ASK"
输入2(显示无结果)
$message = "I WANT TO ASK"
请指教。谢谢。
答案 0 :(得分:1)
我假设你想要那些关键字列的值是消息一部分的行。这是关键词的典型用例。
如果那是对的,那么您可以在函数INSTR的帮助下获得此结果:
SELECT * FROM rules WHERE INSTR('$message', keyword) > 0;
虽然
SELECT * FROM rules WHERE '$message' LIKE CONCAT('%', keyword, '%');
也会工作很多次,它有一个限制,即关键字musn不包含LIKE运算符的通配符:%
和_
。 INSTR没有这个限制。