At 22:18 +0200 4/16/05, Andy Pieters wrote:
Hi everone

I ran into some situation where MySql selects a row by using the following
query:

SELECT `id` FROM `shop_products` WHERE `id`="4aef" LIMIT 1;
+----+
| id |
+----+
|  4 |
+----+

Granted the field IS of type int but 4 is not identical to 4aef (it may be
equal to the eyes of MySql)

Isn't there an MySql equivalent of === (test for same+same type) or should I
just ignore this.

For a comparison of integer with string, the string is converted to number and a numeric comparison is done. '4aef' converts to 4.

I suppose you could convert the integer to string instead:

WHERE CONCAT(`id`) = "4aef"


-- Paul DuBois, MySQL Documentation Team Madison, Wisconsin, USA MySQL AB, www.mysql.com

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to