SELECT stuff REGEXP 'itunes' as is_itunes;
「stuff」に単語「itunes」が含まれている場合は、itunesとしてマークします。MySQLで特定のテキストを含むフィールドをクエリするにはどうすればよいですか?
しかし、「begin with」と言いたいと思います。テキストのどこかではなく、 "begin with"を確認するにはどうすればよいですか?
SELECT stuff REGEXP 'itunes' as is_itunes;
「stuff」に単語「itunes」が含まれている場合は、itunesとしてマークします。MySQLで特定のテキストを含むフィールドをクエリするにはどうすればよいですか?
しかし、「begin with」と言いたいと思います。テキストのどこかではなく、 "begin with"を確認するにはどうすればよいですか?
SELECT ... WHERE stuff LIKE 'itunes%';
%
ワイルドカード文字として機能しますので、これはitunes
のいずれかに等しいstuff
フィールドを持つ行にマッチする、itunesfoo
、itunes1
、...
さらに詳しい情報:W3SchoolsのでSQL LIKE Operator。
がキャレット記号を追加し、それは文字列の先頭を表します
SELECT stuff REGEXP '^itunes' as is_itunes;
しかし、マルクにより示唆されるようLIKE 'itunes%'
はあなたのインデックスが正しく設定されている場合は特に、はるかに高速でなければなりません。
インデックスフィールドのためにそれを行うためにはるかに優れている:
select ... where stuff >='itunes' AND stuff < 'itunet'
これは、全表スキャンを作成し、インデックスを使用しません。
これは、既知の文字列接頭辞に行く方法のようです。他の誰かが大きなテーブルを使ってパフォーマンスにコメントすることはできますか? – aaronbauman
これはmysql v3.23から残った遺物のように見えますが、すべてがmyisam –
SELECT ... WHERE LEFT(stuff, 6) = 'itunes';
SELECT ... WHERE stuff REGEXP '[[:<:]]itunes';
という説明が全くない別のアンサーでした。 –
このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューより](/レビュー/低品質の投稿/ 18145859) – fredrik
何の代わりに 'itunes'使用プレースホルダの場合は?これは正しいですか?SELECT ... WHERE stuff LIKE? '%'; ' – user2118559
%記号は何を伝えますか? – Skynet
@Skynet、%は、任意の数の文字(ゼロ文字を含む)に一致するワイルドカードです。つまり、この例はitunesstore、itunesUsername、itunesと一致します。 ここにMySQLのドキュメントがありますが、%Googleの検索は難しいです! https://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html – georgiecasey