我試圖在我的網站中建立搜索功能。如果我想搜索,如果照片的標題,文字或標記包含單詞「黑」我有這3個疑問:將3個MySQL查詢合併爲1個查詢
SELECT id
FROM photos
WHERE title LIKE '%black%'
AND status = 'A'
SELECT id
FROM photos
WHERE text LIKE '%black%'
AND status = 'A'
SELECT DISTINCT(photos.id)
FROM photos, photo_tags, tags
WHERE tags.tag LIKE '%black%'
AND photo_tags.keyid = tags.id
AND photos.id = photo_tags.catid
AND photos.status = 'A'
是否有可能這一切的組合爲1個查詢?我知道我可以加入前兩名,但將第三名與第三名結合起來似乎對我來說太複雜了。我試過加入OR,但我認爲我沒有做對。
此外,我希望它不會有重複的結果,所以如果一張照片的標題爲「黑色」,而標籤爲「黑色」,則只會顯示一次。
BTW表是這個樣子,keyid的涉及tag.id和CATID涉及photos.id
photos
+----+-----------+-----------------+
| id | title | text |
+----+-----------------------------+
| 1 | blue pic | black and blue |
| 2 | red pic | red and green |
| 3 | green pic | green and white |
| 4 | white pic | white and black |
| 5 | black pic | black and gold |
+----+-----------+-----------------+
tags
+----+-------+
| id | tag |
+----+-------+
| 1 | blue |
| 2 | table |
| 3 | chair |
| 4 | red |
| 5 | black |
+----+-------+
photo_tags
+-------+-------+
| keyid | catid |
+-------+-------+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 2 |
| 5 | 5 |
+-------+-------+
第一查詢搜索標題欄,第二個查詢搜索文本列。我知道這不是很難將兩者合併爲1個查詢,但它是第三個查詢的添加,這使我很困惑 – timsnell
對不起我的錯誤 –