Veritabanımda "tags" adlı bir alana sahip bir tablom var. iOS, Android, Java, JavaScript, vb. Ve bu tablodaki bazı öğeleri eşleştirmek için işaretleyin: eMySQL "like" (yanlış pozitif)
id | isim | etiketler
- | ------- | -----
1 | name1 | iOS, Android
2 | name2 | JavaScript, CSS
3 | name3 | Artık HTML, Java
, ben etiketi 'Java', bunu yapmak (id = 3 ile tek) tek öğeleri istiyorsanız: hayal gibi
SELECT * FROM posts WHERE tags LIKE '%Java%';
ama , bana ikinci (JavaScript) ve üçüncü (Java) öğelerini döndürür.
Sadece üçüncüsü iade etmek için nasıl yapabilirim? Ayrıca like
ile yapabilirsiniz, MySQL ve diğer veritabanları ise
SELECT *
FROM posts
WHERE find_in_set('Java', tags) > 0;
ama herşeyin etrafında sınırlayıcıları koymak gerekir:
'SELECT * FROM gönderilerinden WHERE etiketleri '% Java', ' –
Google çoktan çoğa ilişkiler için – zerkms
İlişki tablosunu kullanmalı ve yanıtlarınızı" LIKE "cümleciğini akıllıca – Raptor