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)