3

テーブル「orders」に id=1 のレコードがあるとします。このクエリ:

SELECT * FROM 'orders' WHERE id = 'abc1'

言及されたレコードを返しません。しかし、このクエリ:

SELECT * FROM 'orders' WHERE id = '1abc'

id=1 のレコードを返します。これは、MySQL が文字列を数値に変換すると、'abc1' は 0 になるが、'1abc' は 1 になるためです。MySQL がクエリから id を持つレコードを厳密に検索するようにする良い方法はありますか。つまり、両方で id=1 のレコードを返さない言及されたケース?

4

2 に答える 2

6

使用について:

SELECT * FROM 'orders' WHERE id LIKE '1abc' COLLATE utf8_bin

あるいは

SELECT * FROM 'orders' WHERE STRCMP(id, '1abc') = 0;
于 2013-04-22T18:01:35.973 に答える