2017-03-08 6 views
0

から特定の番号を選択するために、私はshoesという名前のテーブルを持っている:SQLite3の - どのように文字列

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を使用しようとしています。ありがとう

+1

は '%10、%'、または右(サイズ、2)= '10'などのサイズを使用します。あなたはあなたのデータを正規化することをお勧めします。 – cha

+0

"%10、%"のような 'CONCAT(sizes、 '、')'を使用してください。 – cha

+0

私はそのような関数はありません:CONCAT' – tadm123

答えて

1

まず、サイズをカンマ区切りの文字列として保存しないでください。 1つのショーごとにサイズごとに1つの行を持つ別々の行が必要です。それは物事を格納するSQLの方法です。

時々、私たちは他の人の本当に悪い設計決定に悩まされています。あなたは次のようなことができます:

SELECT * 
FROM shoes 
WHERE ',' || '10' || ',' LIKE '%,' || sizes || ',%'; 

区切り文字は "10"が "100"と一致しないように重要です。

関連する問題