我在MySQL中有一個表tbl_comments
。表中有四個字段user_name
,comment_id
,user_likes
,user_dislikes
。 user_likes
和user_dislikes
字段的類型爲VARCHAR,在這兩個字段中有逗號分隔的用戶名。我應該在這種情況下使用哪種SQL查詢
我有以下查詢:
$query = "SELECT * FROM tbl_comments WHERE comment_id=223";
我的問題是我也想通過USER_NAME與此查詢,並得到下面的輸出
1. 0 (if user_name does not exist in user_likes and user_dislikes)
2. 1 (if user_name exists in user_likes)
3. 2 (if user_name exists in user_dislikes)
哪些SQL查詢可以給我想要的結果?
我想你會與你的應用程序,如果你有一列內以CSV格式外鍵的列表遇到麻煩。我建議改變你的設計,以便你有一個新的表'user_opinion',它連接'from_user_id','to_user_id','type'(類型是L或D)。 – halfer 2013-03-03 09:00:56
其實我正在開發一個論壇。而你的建議看起來很有價值。我想我應該重新設計我的數據庫。你可以請參考我可以幫助我在這方面的任何好的文章,教程等。因爲我希望我的應用程序更高效。 – 2013-03-03 10:24:12
沒有必要的教程能夠幫助你解決這個具體的問題,但是如果你瞭解了數據庫的規範化,就像Andre所說的那樣,這肯定會有所幫助。另外需要注意的是:開發一個用於學習目的的論壇是很好的,但是請記住,已經有很多成熟的,經過充分測試的PHP論壇軟件包了! – halfer 2013-03-03 12:05:24