WHERE
MySQLクエリが句にあるものを動的に検索できる方法があるかどうか知りたいです。
たとえば、クエリが
Select *
from table
where item = 'Dell Optiplex 390'
次の行を検索する必要があります。
Dell Optiplex 390
Dell Desktop Optiplex 390
Dell Laptop Optiplex 390
Optiplex dual core 390
etc., etc.
WHERE
MySQLクエリが句にあるものを動的に検索できる方法があるかどうか知りたいです。
たとえば、クエリが
Select *
from table
where item = 'Dell Optiplex 390'
次の行を検索する必要があります。
Dell Optiplex 390
Dell Desktop Optiplex 390
Dell Laptop Optiplex 390
Optiplex dual core 390
etc., etc.
この種の検索機能については、一致するアルゴリズムを探していると思います。レーベンシュタイン距離アルゴリズムを使用できます。phpを使用しているlevenshtein
場合はこのアルゴリズムを実装するphp関数があり、一致するデータを取得します。また、 Needleman-Wunschアルゴリズムもあります。データが英語のみで、1つの単語列がある場合はSoundexアルゴリズムを使用できます。
これは始まりです。Mysqlにはこれらのアルゴリズムの多くの実装があります。
そのフィールドがあなたの言葉のいずれかで構成されていることを知る必要がある場合。
Select *
from table
where item like '%Dell%' OR item like '%Optiplex%' or item like '%390%'
ここに削除された良い答えがありました、私はその答えを次のように変更します:
Select * from table where
lower(item) like '%dell%optiplex%390%' or
lower(item) like '%optiplex%390%' or
lower(item) like '%dell%laptop%390%' or ...
LIKE
ワイルドカードでSQL句を使用します。
SELECT *
FROM table
WHERE item LIKE '%Dell%Optiplex390%';
これが良いリファレンスガイドです: