テキストフィールドを含むテーブルがあります。行に応じて、フィールドには3〜4文程度あります。
ここで、オートコンプリートhtmlオブジェクトを作成しています。単語の先頭の入力を開始し、データベースがデータベースのテキストフィールドからそれらの文字で始まる単語を返すようにします。
テキストフィールドの例:私はフィッシュスティックが好きです、フィッシュハットも素晴らしいです
オートコンプリートで「魚」と入力すると、「フィッシュスティック」と「フィッシュハット」が提案されます
クエリ以外はすべて機能します。
特定の単語を含む行を簡単に見つけることができますが、全文ではなく単語だけを抽出することはできません。
select data_txt from mytable match(data_txt) against('fish', IN BOOLEAN MODE) limit 10
汚れていることはわかっていますが、データベースを再配置できません。
ご協力ありがとうございました!
編集:
これが私が得たものです、ブレント・ワーデンのおかげで、それはきれいではありませんが、それは機能します:
SELECT DISTINCT
SUBSTRING(data_txt,
LOCATE('great', data_txt),
LOCATE(' ' , data_txt, LOCATE('great', data_txt)) - LOCATE('great', data_txt)
)
FROM mytable WHERE data_txt LIKE '% great%'
LIMIT 10
LOCATE
同じ式を何度も使用しないようにする方法について何か考えはありますか?