在mysql的一个字段中匹配多个值与现有字符串

时间:2014-10-11 14:11:55

标签: php mysql sql

例如,当一个表有一个名为“product”的记录列,其中包含的值如下:'Laptop,Desktop,Case'。如何使用逗号来验证这三个用$var1='Laptop'$var2='Desktop'对两个PHP变量值进行分解的值?这样就可以找到这一行!但是,这两个变量也可以按“桌面”,“笔记本电脑”的顺序传递。同时,该列可能具有“案例,桌面,笔记本电脑”的模式。我想知道MySQL是否有这种情况的解决方案,不知何故,拿起像PHP这样的每个元素,并将它们与每个var单独匹配。

2 个答案:

答案 0 :(得分:0)

在不了解您的表格结构的情况下,这是您可以做的快速示例。

SELECT * FROM table WHERE $var1 IN (SELECT product FROM table WHERE something = somethingelse) AND  $var2 IN (SELECT product FROM table WHERE something = somethingelse)

答案 1 :(得分:0)

据我了解,如果列'product'包含'Laptop'或'Desktop',您希望找到数据。在查询中使用LIKE运算符写这个:

"SELECT * FROM table WHERE `product` LIKE '%Desktop%' OR `product` LIKE '%Laptop%'"

如果传递变量,则为:

"SELECT * FROM table WHERE `product` LIKE '%$var1%' OR `product` LIKE '%$var2%'"

确保在搜索到的字符串之前和之后使用%符号,这样即使关键字位于产品内容中,它也会匹配。