我有一个名为shoes
的表:
Shoe_model price sizes
-----------------------------------------------
Adidas KD $55 '8, 9, 10, 10.5, 11, 11.5'
Nike Tempo $56 '8, 9, 11.5'
Adidas XL $30.99 '9, 10, 11, 13'
如何为特定尺寸选择行?
我的尝试:
SELECT * FROM shoes WHERE sizes = '10';
有解决方法吗?使用LIKE
将获得10和10.5大小,因此我尝试使用WHERE
。感谢
答案 0 :(得分:1)
首先,您不应将大小存储为逗号分隔的字符串。你应该有一个单独的行,每个节目每个大小一行。这是存储事物的SQLish方式。
有时,我们会遇到其他人非常糟糕的设计决策。在你可以做这样的事情:
SELECT *
FROM shoes
WHERE ',' || '10' || ',' LIKE '%,' || sizes || ',%';
分隔符非常重要,因此" 10"不匹配" 100"。