2016-11-04 29 views
0

私は過去のユーザー名のようなデータベース列を持っています。PHP mysqlデータベースに文字列stringが含まれていないか確認してください。

これは、情報があった場合の行の外観です。

私がしようとしているのは、一行をチェックして、いずれかにjoeが含まれているかどうかを確認することです。私はそれを行う方法についての一つの可能​​な理論を持っていますが、私は恐れることは誰かの過去のユーザ名がこれですと言っている:

billjoe 

恐れてイムそれはので、私はそれを無視したいと思うことでその法案のデータベースに存在していると思うだろうそれは正確に請求していない場合。

たとえば、1つの文字列に3つの名前をカンマで区切って指定すると、混乱する可能性があります。それを行う方法についての

私の理論は、このようなものです:

$stmt = $db->prepare("SELECT * FROM users WHERE pastusernames LIKE :pastusernames"); 
$stmt->execute(array(':pastusernames' => "%bill%")); 

しかし、それはさえ完全に間違っている可能性があります。それでは、これを正しく行うにはどうしたらいいですか?

+5

これはデータベースを正規化すると簡単になる場合があります。列 'user_id'と' name'を持つテーブル 'past_usernames'を作成します。次に、正確なユーザー名とuser_idを検索することができます。 – aynber

答えて

0

PHPでの書き込み方法がわかりません。しかし、SQLは次のようになります。

SELECT * 
FROM users 
WHERE ', ' + pastusernames + ',' LIKE '%, bill,%' 

あなたは必ず試合全体のことだけではなく、一部

+0

'+'は点(結合する)ではいけませんか?私はここで "数学"が行われているとは思わない。または、これは私が知りませんいくつかの教祖のSQLですか? * lol * –

+0

@ Fred-ii-私はSQLコードを書いていると言いました。どのようにPHPに変換するかわからない –

0

は、私はわかりませんが、あなたのための仕事かもしれクエリを下回るかもしれ

作る ,追加します
$stmt = $db->prepare("SELECT * FROM users WHERE pastusernames LIKE :pastusernames"); 
$stmt->execute(array(':pastusernames' => "bill")); 
関連する問題