mysql选择喜欢和喜欢的位置

mysql选择喜欢和喜欢的位置,mysql,sql,string,csv,sql-like,Mysql,Sql,String,Csv,Sql Like,我在一个名为products的表中有一个名为papers的列,其值如下: “1,2,3,4,5,6”在另一行,它有这样的“3,4,5” 我想用php启动这个查询 从产品中选择*,其中包括“%5%”、“%3%”和“%4%”等文件。 TL;博士 我想选择一个包含多个字符串的列,忽略MySQL中的顺序,您可以使用find\u In\u set(): 请注意,您的问题表明数据库设计存在缺陷。您不应该在单个字符串列中存储多个整数值。相反,您应该将每个整数值放在单独的行中,可能在另一个表中,该表将通过外键约

我在一个名为
products
的表中有一个名为
papers
的列,其值如下:

“1,2,3,4,5,6”在另一行,它有这样的“3,4,5”

我想用php启动这个查询

从产品中选择*,其中包括“%5%”、“%3%”和“%4%”等文件。

TL;博士


我想选择一个包含多个字符串的列,忽略MySQL中的顺序,您可以使用
find\u In\u set()


请注意,您的问题表明数据库设计存在缺陷。您不应该在单个字符串列中存储多个整数值。相反,您应该将每个整数值放在单独的行中,可能在另一个表中,该表将通过外键约束引用主表。推荐阅读:。

emm我本可以用发送代码的相同方式完成,但我想用php动态完成,而不重复'and'@MMoh:(1)您的代码不安全,因为它会将
3
1,2,31
这样的字符串匹配
find_in_set()
避免了这个陷阱。(2) 我不认为只有一个条件就可以做到这一点。它们实际上不是数字,
SELECT*来自产品中的find_in_set('agreement_to_sell',papers),find_in_set('land_register',papers),find_in_set('re_promotion',papers)
这是我真正的查询,只是想简化一下,如果你想“用php动态地”完成它的话然后重复和是容易的。如果不是,那么这实际上是一个php问题,您需要展示您的phpcode@GMB您的解决方案比我的好,我会尝试在我的代码中使用它。也值得一读。
select * 
from products 
where find_in_set('3', papers) and find_in_set('4', papers) and find_in_set('5', papers)