現在、私はSQLとPHPで検索エンジンを実行したいと考えています。私はcrrently次のクエリを使用します。文字列がXで始まるSQLで検索
SELECT * FROM info WHERE name LIKE '%$q%' LIMIT 10
をしかし、私は$ qを、ない$ Qをcointainもので始まる「名前」との情報を選択します。
現在、私はSQLとPHPで検索エンジンを実行したいと考えています。私はcrrently次のクエリを使用します。文字列がXで始まるSQLで検索
SELECT * FROM info WHERE name LIKE '%$q%' LIMIT 10
をしかし、私は$ qを、ない$ Qをcointainもので始まる「名前」との情報を選択します。
単に最初のワイルドカード(%)を削除:あなたは複数の名前を持っていて、フィールドの真ん中にあるかもしれない名前を検索するフィールドを検索するために欠けている場合は、その後、
SELECT * FROM info WHERE name LIKE 'X%' LIMIT 10
をFull Text Search
(FTS)を使用する方が良いかもしれません。たとえば、OPのname
フィールドにフルネームが含まれていて、"John Doe"
が含まれていて"Doe"
を検索する場合は、LIKE
オペレータを使用するよりも、FTSがおそらくより正確に(より正確で高速に)なる可能性があります。 FTSを使用すると、テキスト内の個々の単語が索引付けされるため、検索が非常に高速になります。さらに、隣接していないフィールドで2つの単語(または名前)を見つける機能(たとえば、ランダム)。
特定のデータベースベンダーはOPでは言及されていませんが、FTSがサポートされている場合は、試行しているものに適しています。一部のFTS information for SQL Serverとfor MySQLは簡単に検索で見つけられます。
「検索エンジンを使いたい」という意味はどういう意味ですか?クエリを実行したいという意味ですか? –