2012-05-07 13 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

データベースエンジンに強制的にテーブルのすべての行を検査させるため、これはお勧めできません。ノートにアクセスできる各ユーザが個別にリストされているパーミッションテーブルを作成する方が良いでしょう(ユーザカラムのインデックスも必ず作成してください)。

あなたは本当に、あなたは(MySQLを仮定)LOCATE文字列関数を使用することができますする必要がある場合:LOCATEが、それはカンマ区切りのものを気にしないので、あまりにも問題があるため、「より良い、もちろんhttp://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_locate

を"アプローチはREGEXPであるかもしれません:http://dev.mysql.com/doc/refman/5.5/en/regexp.html#operator_regexp

関連する問題