mysql について基本的な質問があります。私のテーブル「テーブル」には、「foo」(文字列) という名前の列があります。そして、私はこのようなことをしたいと思います:
SELECT * FROM table WHERE %foo% LIKE '%thing%'
しかし、それは明らかに間違っています。前もって感謝します。
mysql について基本的な質問があります。私のテーブル「テーブル」には、「foo」(文字列) という名前の列があります。そして、私はこのようなことをしたいと思います:
SELECT * FROM table WHERE %foo% LIKE '%thing%'
しかし、それは明らかに間違っています。前もって感謝します。
SELECT * FROM table WHERE key like '%sth%'
select * from table where key like '%sth%'
まず、キーは予約済みのキーワードです。そのため、バッククォートで囲まれた角括弧 を追加する必要がある場合があります。次に、ワイルドカードを適切に使用する必要があります。多くの回答がすでにそれを示しています。サンプルデータに合わせて設定してください。
Set @sth:= 'joh'
方法 2 は、 を使用することREGEXP
です。
Select * from mytable
where `key`
REGEXP @sth
;
方法 3 は、 を使用することinstr
です。
select * from landlord
where instr(`key`,@sth) > 0
;
を試すこともできますmatch
against
。しかし、部分的な文字列ではうまく機能しないようです。
それはFullText
検索であり、テーブルはそれを実行できる必要があります。MYISAM は、全文検索を実行できる唯一のテーブル タイプです。有効にしていない場合は、次のAlter
行を使用してテーブルを変更できます。FullText
検索では、実際には列にインデックスを追加していますkey
。インデックスを使用すると検索が高速になります。
`ALTER TABLE mytable ENGINE = MYISAM;`
Alter Table mytable
Add FULLTEXT(`key`)
;
Select * from mytable
where match(`key`)
against(%@sth% IN BOOLEAN MODE)
;