Mysql子查询IN中使用LIMIT_MySQL
Jun 01, 2016 pm 01:26 PMbitsCN.com
学习下Mysql子查询IN中使用LIMIT的方法。
这两天项目里出了一个问题,mysql LIMIT使用后报错。
需求是这样的,我有3张表,infor信息表,mconfig物料配置表,maaply物料申请表,要求是读出申请表中哪些人申请哪些物料
于是,首先这样写:
SELECT infor.name,infor.phone,infor.add,
mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime'
FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig.mid
WHERE mapply.aid
IN (
SELECT aid
FROM `mapply` where state = $state
ORDER BY `atime` , `uid` DESC
LIMIT 0,10
) www.jbxue.com
结果报错了
当时没注意报的什么错误,只是看到LIMIT什么的错误,于是修改以下代码:
SELECT infor.name,infor.phone,infor.add,
mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime'
FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig.mid
WHERE mapply.aid
IN (
SELECT aid
FROM `mapply` where state = $state
ORDER BY `atime` , `uid` DESC
)
LIMIT 0,10
这样没有报错,莫离以为OK了,但是运行后发现,数据有问题
和单纯的读出申请表的内容不一样,才发现LIMIT的位置放错了,于是又把LIMIT发在IN里,结果报错如下
This version of MySQL doesn't yet support ‘LIMIT & IN/ALL/ANY/SOME subquery'
细看才知道,IN里不支持LIMIT。那怎么办呢?www.jbxue.com
于是度娘后得知,在IN里再使用一张临时表,把需要的内容先查出来,
修改后:
SELECT infor.name,infor.phone,infor.add,
mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime'
FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig.mid
WHERE mapply.aid
IN (
SELECT aid
FROM (SELECT `aid` FROM `mapply` where state = $state
ORDER BY `atime` , `uid` DESC
LIMIT 0,10)AS `tp`
)
运行后,问题解决!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

L'IA peut-elle vaincre le dernier théorème de Fermat ? Un mathématicien a abandonné 5 ans de sa carrière pour transformer 100 pages de preuve en code

Regardons de plus près PyCharm : un moyen rapide de supprimer des projets

Partagez un moyen simple de packager des projets PyCharm

Conseils pratiques PyCharm : convertir le projet en fichier EXE exécutable

Comment créer une liste de courses dans l'application de rappels iOS 17 sur iPhone

Basé sur le projet open source ChatGPT Web UI, créez rapidement votre propre site ChatGPT

Que faire s'il y a une erreur lors du démarrage du projet React

Tutoriel PyCharm : Comment supprimer des éléments dans PyCharm ?
