17
テーブルが作成されたときにテーブルを変更できれば大丈夫だとわかりましたが、できないと仮定すると、テーブルがあります。テーブルの文字列の先頭にmysqlが一致する文字列
abcd
abde
abdf
abff
bbsdf
bcggs
... snip large amount
zza
表の値は固定長ではありません。 私はabffagpokejfkjsなどの一致する文字列を持っています。 それは他の方法でのラウンドだった場合、私は
SELECT * from table where value like 'abff%'
行うことができますが、私は提供された文字列の先頭に一致する値を選択する必要があります。
これを行う簡単な方法はありますか、それとも一致を見つけるためにテーブルを通して繰り返しが必要ですか?あなたは、レコードをたくさん持っている場合、それは遅くなりますので、これは効果的にインデックスを使用しないこと
SELECT col1, col2 -- etc...
FROM your_table
WHERE 'abffagpokejfkjs' LIKE CONCAT(value, '%')
注:
私はこの問題を理解していません。どのような価値を返そうとしていますか?なぜあなたは 'LEFT(値、4)'か 'LIKE'だけを使うことができませんか? –
私はLEFTを使用することはできません。結果の文字数がわからないからです.1の場合は25、25の場合もあります。すべての数字をループすることはできますが、速くは発音できません。 – Woody