1. ホーム
  2. sql

[解決済み] で始まるSQLのような検索文字列

2022-03-05 23:37:05

質問

SQLを学習中。タイトルフィールドを持つ単純なテーブルゲームを持っています。タイトルを元に検索したい。というゲームを持っている場合 Age of Empires III: Dynasties を使用すると LIKE というパラメータで Age of Empires III: Dynasties 検索すると、その名前を持つレコードが返され、すべてうまくいきます。しかし、もし Age of Empires III は、レコードを返しません。

SELECT * from games WHERE (lower(title) LIKE 'age of empires III');

これでは何も返せません。の代わりに何か他のものを使うべきでしょうか? LIKE ?

MySQLを使用しています。

どのように解決するのですか?

SELECT * from games WHERE (lower(title) LIKE 'age of empires III');

上記のクエリは、どの行にも存在しない「age of empires III」の正確な文字列を探しているため、行を返しません。

そのため、この文字列とマッチングするように 'age of empires' を部分文字列として使用する必要があります。 '%your string goes here%'

詳細はこちら mysqlの文字列比較

これを試す必要があります

SELECT * from games WHERE (lower(title) LIKE '%age of empires III%');

のように '%age of empires III%' を実行すると、行の中の一致する部分文字列を検索し、結果に表示されます。