2012-05-07 44 views
1

在表格中,我有一個存儲允許查看帖子的用戶的字段。我有類似93849038,39480398的地方,逗號分隔用戶。如何匹配包含逗號的條目?

原來這就是我想要做的事:

$user = logged in user; example: 93849038. 

而且這是我的查詢看起來像:

$sql = "SELECT note FROM notes_are WHERE user_allowed = '$user' ORDER 
BY id DESC LIMIT 0, 3"; 

使用一樣,我無法服務後的結構。

+0

這是一個設計很差的表。 –

+0

你在做什麼是錯誤的。您需要停止使用連接的ID列表並開始使用真正的外鍵。這對數據庫來說是一件可怕的事情,它會削弱你的應用程序。 – meagar

+0

這是設計dB表的一種不好的方法,您可以爲每個可以看到特定帖子的用戶沿着行的行進行操作。 –

回答

1

這不是推薦的做法,因爲它會強制數據庫引擎檢查表中的所有行。最好創建一個權限表,其中有權訪問筆記的每個用戶都單獨列出(確保也索引用戶列)。

如果你真的有必要,你可以使用LOCATE字符串函數(假設MySQL的):http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_locate

當然,LOCATE有問題,也因爲它並不關心逗號分隔的東西,所以「好「的做法可能是REGEXPhttp://dev.mysql.com/doc/refman/5.5/en/regexp.html#operator_regexp