2016-07-14 5 views
0

MySQLデータベースからユーザーの詳細を選択していますが、ほとんどのユーザー名が正常に一致していますが、数字は含まれていません。MySQLで成功したSELECTを妨げる数値文字列

私のデータベースのテーブルには、特に、 'examplename'とuser_name列の 'examplename1'というレコードがあります。それらはVARCHAR、照合順序utf8_general_ciとして保管されます。

この戻り '詳細':この一方

SELECT details FROM username_table WHERE user_name = 'examplename' 

にはない:

SELECT details FROM username_table WHERE user_name = 'examplename1' 

はなぜ数字は、VARCHARフィールドに問題を引き起こしていますか? (私もテキストとして試してみましたが、また失敗します)

編集:OK、私の間違い。これらは単純化された例です。私は実際のステートメントにJOIN節を持っています。そして、偶然にも、テーブルの28人のユーザーのうち、ユーザー名の2つだけで結合エラーが発生しました。ごめんなさい。

+1

、何もで始まるすべてのレコードを表示しますテーブル内の "examplename1"と一致します。 –

+0

*奇妙な振る舞い* –

+0

嬉しいです。まず問題がないので質問を削除することを検討し、誰かが新しいことを学ぶのを助けることはできません。 – BeetleJuice

答えて

0

私はこれが愚かであると知っていますが、検索した用語がそれ自身の変数であるようにクエリを抽出しようとしましたか?このような

何か:

$var_name = "examplename1"; 
$SQL = "SELECT details FROM username_table WHERE user_name = $var_name"; 
.... 

私は、クエリ文字列に数字を持っているとき、これは通常、私のために動作します。

0

数値文字がVARCHARフィールドで問題を引き起こすのはなぜですか?

MySQLは、数字を含むVARCHARフィールドを検索するのに問題はありません。最も可能性のある説明は、username_tableにはレコードが「examplename1」

user_nameセットに存在しないことである、これを試してみてください:

SELECT details FROM username_table WHERE user_name LIKE 'examplename%' 

は、それはあなたにそのuser_nameおそらくexamplename

関連する問題