mysql使用in操作符遇到的困惑-三体教程
文章目录

mysql使用in操作符遇到的困惑

今天在查询数据的时候,真是把小编给搞郁闷了,反反复复的检查了很久,才找到问题所在。

表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")

要将被查询的数据加上引号才行。

本文网址:http://www.santii.com/article/82.html


数据更新时间:2018-05-21