Mysql查询哪个列有多个值

时间:2015-01-19 16:17:25

标签: php mysql search

我一直在尝试使用mysql查询找到一种从列中获取值的方法。

列(让我们谈谈颜色)有几个外键(没有外来约束)。所以想象一件衬衫可以有蓝色和黑色,“颜色”栏的“1,10”是1-Blue和10-Black,都是外键。

我想创建查询以搜索是否使用了蓝色,这样我就可以防止从原始表中删除该颜色。虽然听起来很容易,但我不能使用:

SELECT * FROM shirt WHERE color LIKE '%$id%'

问题是如果没有使用蓝色,它仍会找到黑色(10)并为查询提供真值。

2 个答案:

答案 0 :(得分:1)

SELECT * FROM shirt WHERE FIND_IN_SET($id, color) > 0

答案 1 :(得分:1)

嗯..如果我理解你的问题吧。您将值存储为逗号分隔字符串。你想搜索是否有任何T恤保持这种颜色。

$colorToSearchFor = '1'; //blue.. sepearte it by comma to check for several colors at the same time e.g '1,10'
$sql = "SELECT * FROM shirt WHERE color IN(colorToSearchFor)";

//count the results, if it's more than one then a t-shirt has the specifik color assigned.

建议有两个不同的表格。一件用于T恤,一件用于颜色。