Php 要使用多个术语时查询中LIKE子句的顺序

Php 要使用多个术语时查询中LIKE子句的顺序,php,mysql,select,sql-like,Php,Mysql,Select,Sql Like,我有疑问 SELECT * FROM images WHERE tags LIKE '%example%hello%' 我希望数据库以任意顺序选择“标记”列中包含“示例”和“您好”的行,如: 带有“hello,test,example”的行,也可以是“example,hello,test”或此顺序的任何其他变体。 即使不使用LIKE,这是否可能?行必须全部包含用LIKE指定的所有内容 编辑:例如,当我在查询中提供'example'和'hello'时,返回的行必须同时包含'example'和'h

我有疑问

SELECT * FROM images WHERE tags LIKE '%example%hello%'
我希望数据库以任意顺序选择“标记”列中包含“示例”和“您好”的行,如:

带有“hello,test,example”的行,也可以是“example,hello,test”或此顺序的任何其他变体。 即使不使用LIKE,这是否可能?行必须全部包含用LIKE指定的所有内容

编辑:例如,当我在查询中提供'example'和'hello'时,返回的行必须同时包含'example'和'hello'。

您可以尝试一个简单或快速的解决方案:

SELECT * FROM images WHERE tags LIKE '%example%' OR tags LIKE '%hello%'
编辑

要解决编辑问题,您可以使用和:

您可以使用查找集合中的查找:


但是,这要求标记在逗号后不带空格,在这种情况下,您必须对标记进行替换或进行更多布尔检查。这可能比我想象的要快。我不确定。

对不起,在您发布时对我的问题进行了编辑。我需要返回的所有行都包含'example'和'hello'@user1015599,只是在推广这项技术时要小心,因为如果你的两个词是'example'和'examine',它可能不会像你期望的那样工作,如果你的两个词是'example'和'plentity',甚至可能会遇到问题。
SELECT * FROM images WHERE tags LIKE '%example%' AND tags LIKE '%hello%'
SELECT tags FROM images WHERE FIND_IN_SET('hello', tags) AND FIND_IN_SET('example', tags)