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";

使用这样的结构,我无法担任该职位。

4

1 回答 1

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

于 2012-05-07T18:27:34.347 回答