我有SQL专栏"属性"价值在哪里:
11235 11236 11237 11238 11239 11240
在其他行(同一列)中是值:
233 234 235 236 237
我需要make SELECT
,其中列包含" 235"。我无法使用WHERE LIKE "%235%"
,因为该代码选择11235
,我只需要235
以空格分隔的位置。
感谢您的帮助。
答案 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