私のデータベースには、 "tags"という名前のフィールドがあります。 iOS、Android、Java、JavaScriptなど。この表の項目をすべて選択したい場合は、いくつかのタグに一致するものを選択します。MySQL "like"(偽陽性)
id |名前|タグ
- | ------- | -----
1 |名前1 | iOS、Android
2 |名前2 | JavaScript、CSS
3 |名前3 |あなたが想像として
SELECT * FROM posts WHERE tags LIKE '%Java%';
しかし、私は、タグのJava '(ID = 3で一つだけ)を持っている項目だけをしたい場合はHTML、Javaの
今
は、私はこれを行いますそれは私に2番目の(JavaScript)と3番目の(Java)アイテムを返します。
私はどのようにして3番目のものを返すことができますか?あなたもlike
でこれを行うことができ、MySQLと他のデータベースで
SELECT *
FROM posts
WHERE find_in_set('Java', tags) > 0;
、しかし、あなたはすべての周りに区切り文字を配置する必要があります:
'SELECT * FROM posts WHEREタグ '%Java';' –
多対多の関係のためのGoogle – zerkms
代わりにリレーションテーブルを使用し、 'LIKE'節を賢明にしてください。 – Raptor