mysql使用in操作符遇到的困惑2017-09-27 21:56
今天在查询数据的时候,真是把小编给搞郁闷了,反反复复的检查了很久,才找到问题所在。
表order有两个字段,分别是o_id和o_orderidcode。
o_id字段是int数据类型。
o_orderidcode是varchar数据类型。
表里面有如下数据。
+------+-------------------+
| o_id | o_orderid |
+------+-------------------+
| 1 | 52670500078242977 |
| 2 | 52687050458242977 |
| 3 | 52102368671577109 |
| 4 | 52687050458242977 |
| 5 | 52102368671577109 |
+------+-------------------+
5 rows in set (0.00 sec)
我们一般要查找id包含“1、4、5”的数据就会用到in (1,4,5)
那么要查找o_orderidcode包含“52670500078242977”和“52102368671577109”的数据时,查询语句应该怎么写呢?
select * from order where o_orderid in (52670500078242977,52102368671577109)
是不是会写成上面这样?
但是这样写却得不到我们想要的结果,只会返回“52670500078242977”的记录。
应该改成这样
select * from order where o_orderid in ("52670500078242977","52102368671577109")
要将被查询的数据加上引号才行。