5A898、89KAS、89ASDなどの値を含む列があります。
列の3桁目が「A」である行のみを返すクエリを作成しようとしています。たとえば、「89ASD」は返されますが、「89KAS」は返されません。これを行う正しい方法がわかりません。正規表現?
それで...
SELECT column
FROM table
WHERE column = ?
5A898、89KAS、89ASDなどの値を含む列があります。
列の3桁目が「A」である行のみを返すクエリを作成しようとしています。たとえば、「89ASD」は返されますが、「89KAS」は返されません。これを行う正しい方法がわかりません。正規表現?
それで...
SELECT column
FROM table
WHERE column = ?
WHERE column LIKE '__A%'
^^-- 2 underscores
トリックを行う必要があります。2つの「何でも」の文字、その後にA、その後に任意の量の任意の文字が続きます。
たぶんあなたはMySQLを使うことができますSUBSTRING
SELECT column
FROM table
WHERE SUBSTRING(column,3,1) = 'A'
where right(left(col,3),1) = 'A'
それは助けることができます...MarcBの答えはよりきれいです
正規表現でこれを行うことができますが、ここで文字列操作に対処する方が簡単かもしれないと思います:
SELECT column
FROM table
WHERE SUBSTRING(column,3,1) = 'A';