1

私のサイトはimdb.comのようなもので、映画の詳細と俳優の名前が保存されています。アクターフィールドには、「name1、name2、name3、name4」のようなアクター名を格納しています。

私のサイトには、俳優名で映画を検索するオプションがあります。このための私のコードは以下のとおりです。

SELECT * FROM imdb WHERE actors LIKE '%%actorname%%'

問題は、訪問者が「ラル」を検索すると、俳優の名前が「モハンラル」と「ラル」の両方の映画が表示されることです。「ラル」の映画だけをリストしたい。それを行うためのクエリをどのように書くことができますか?

4

5 に答える 5

1

次のクエリを試してください。

SELECT * FROM `imdb` WHERE `actors` RLIKE '[[:<:]]Lal[[:>:]]'

さらに良く、そして簡単:

SELECT * FROM `imdb` WHERE find_in_set('Lal',actors)
于 2012-11-08T14:17:33.867 に答える
0

次のようなクエリを作成します。

SELECT * FROM imdb WHERE actor LIKE 'actorname'

入力フィールドの横にテキストを配置して、検索にワイルドカードを使用できるようにします。次に、「Lal」を検索する場合は「Lal」のみが検索され、「lal」(%lal)で終わるすべてのものを検索する場合は、MohanlalとLalが検索されます。

于 2012-11-08T13:44:43.600 に答える
0

アクター用に個別のテーブルを作成する必要があります。とにかく、私たちは残されたものの解決策を見つけようとします。

  SELECT * FROM imdb WHERE actors LIKE 'Lal,%' OR actors LIKE '%,Lal%' OR actors = 'Lal'
于 2012-11-08T13:48:28.260 に答える
0
SELECT * FROM imdb WHERE actor LIKE '%,lal' or actor LIKE 'lal'
于 2012-11-08T13:51:36.097 に答える
0

私はこれがあなたが必要としているものだと思います:

SELECT whatever
FROM whereever AS t
WHERE t.actors = SOUNDEX('test')
于 2015-10-14T07:40:50.153 に答える