mysql WHERE多个值

时间:2017-11-05 21:38:08

标签: php mysql where

我在Select查询中使用WHERE时出现问题。 DB表包含一个字段,用于存储数据除以“1,2,3”之类的逗号。 我不知道如何检查该字段是否包含1,2或3.通常的查询将是 “SELECT * FROM”。$ table。“WHERE name ='”。$ val。“'”。 但是当然这只找到等于$ val的条目,所以如果我搜索“1”,它只会给我只包含“1”的条目,而不是“1,2,3”或“1,2”。有没有办法做到这一点?

谢谢你们

1 个答案:

答案 0 :(得分:4)

您应该修复数据结构。有很多理由避免将数字列表存储为字符串:

  • 值应存储为正确的数据类型。数字不是字符串。
  • SQL的字符串处理功能很差。
  • SQL具有用于存储列表的强大数据结构。它被称为表。
  • 如果数字引用另一个表,则无法声明正确的外键关系。

有时,我们会遇到其他人非常糟糕的设计决策。在这些情况下,MySQL提供find_in_set()

where find_in_set(1, name) > 0