mysql in条件内容过多时处理

mysql in条件内容过多时处理,第1张

mysql的in条件查询,是括号里拼接逗号相隔的字串,这个字长里的个数还有限制,网上的说法是1000个,为了避免超出该范围,可专门封装一个方法 1.使用exists写法替代in写法,exists写法是使用条件查询替代in写法里的一长串字串,这个有时候没法使用,比如使用第三方接口查学校一年级2千个学生的考试成绩,你只知道这些学生的id,没有更多的关联条件 2.使用or的写法,将in条件过长的字串拆开,mysql支持以下写法: 方法封装: 测试效果:

方法一,在你的程序中直接

desc tablename

然后总行数就是你的字段数。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

mysql>desc ysks

+-------+---------------+-----

| Field | Type | Null

+-------+---------------+-----

| 单号 | int(11) | YES

| 金额 | decimal(10,2) | YES

| 已收 | decimal(10,2) | YES

| 日期 | bigint(20)| YES

| 名称 | varchar(10) | YES

| 余额 | decimal(10,2) | YES

| 备注 | varchar(10) | YES

| 品名 | varchar(10) | YES

+-------+---------------+-----

8 rows in set (0.06 sec)

mysql>select FOUND_ROWS()

+--------------+

| FOUND_ROWS() |

+--------------+

|8 |

+--------------+

1 row in set (0.06 sec)

mysql>

方法二,通过系统表information_schema.`COLUMNS` ( mysql5以上版本支持)

mysql>select count(*) from information_schema.`COLUMNS`

->where TABLE_SCHEMA='csdn'

->and TABLE_NAME='ysks'

+----------+

| count(*) |

+----------+

|8 |

+----------+

1 row in set (0.06 sec)

mysql>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6096289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存