SQL - 如何选择列包含由空格分隔的字符串的位置

时间:2015-05-05 12:51:31

标签: mysql sql

我有SQL专栏"属性"价值在哪里:

11235 11236 11237 11238 11239 11240

在其他行(同一列)中是值:

233 234 235 236 237

我需要make SELECT,其中列包含" 235"。我无法使用WHERE LIKE "%235%",因为该代码选择11235,我只需要235以空格分隔的位置。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我强烈建议不要存储这样的数据 - 如果它被标准化则更容易查询。

但是,这是使用concat

的一个选项
select *
from yourtable
where concat(' ', field, ' ') like '% 235 %';

答案 1 :(得分:1)

这是一个糟糕的数据库架构,您应该考虑规范化。以下是使用find_in_set

处理此情况的一种方法
mysql> select find_in_set('11235',replace('11235 11236 11237 11238 11239 11240',' ',',')) val;
+-----+
| val |
+-----+
|   1 |
+-----+
1 row in set (0.00 sec)

所以你可以用作

select * from table_name where 
find_in_set('235',replace(col_name,' ',',')) > 0