Mysql子查询IN中使用LIMIT_MySQL

Jun 01, 2016 pm 01:26 PM
プロジェクト

bitsCN.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`
)
运行后,问题解决!

bitsCN.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

AIはフェルマーの最終定理を克服できるか?数学者は100ページの証明をコードに変えるために5年間のキャリアを放棄した AIはフェルマーの最終定理を克服できるか?数学者は100ページの証明をコードに変えるために5年間のキャリアを放棄した Apr 09, 2024 pm 03:20 PM

AIはフェルマーの最終定理を克服できるか?数学者は100ページの証明をコードに変えるために5年間のキャリアを放棄した

PyCharm を詳しく見る: プロジェクトを簡単に削除する方法 PyCharm を詳しく見る: プロジェクトを簡単に削除する方法 Feb 26, 2024 pm 04:21 PM

PyCharm を詳しく見る: プロジェクトを簡単に削除する方法

PyCharm プロジェクトをパッケージ化する簡単な方法を共有する PyCharm プロジェクトをパッケージ化する簡単な方法を共有する Dec 30, 2023 am 09:34 AM

PyCharm プロジェクトをパッケージ化する簡単な方法を共有する

PyCharm の実践的なヒント: プロジェクトを実行可能な EXE ファイルに変換する PyCharm の実践的なヒント: プロジェクトを実行可能な EXE ファイルに変換する Feb 23, 2024 am 09:33 AM

PyCharm の実践的なヒント: プロジェクトを実行可能な EXE ファイルに変換する

iPhoneのiOS 17リマインダーアプリで買い物リストを作成する方法 iPhoneのiOS 17リマインダーアプリで買い物リストを作成する方法 Sep 21, 2023 pm 06:41 PM

iPhoneのiOS 17リマインダーアプリで買い物リストを作成する方法

オープンソースの ChatGPT Web UI プロジェクトに基づいて、独自の ChatGPT サイトを迅速に構築します オープンソースの ChatGPT Web UI プロジェクトに基づいて、独自の ChatGPT サイトを迅速に構築します Apr 15, 2023 pm 07:43 PM

オープンソースの ChatGPT Web UI プロジェクトに基づいて、独自の ChatGPT サイトを迅速に構築します

React プロジェクトの開始時にエラーが発生した場合の対処方法 React プロジェクトの開始時にエラーが発生した場合の対処方法 Dec 27, 2022 am 10:36 AM

React プロジェクトの開始時にエラーが発生した場合の対処方法

PyCharm チュートリアル: PyCharm で項目を削除するには? PyCharm チュートリアル: PyCharm で項目を削除するには? Feb 24, 2024 pm 05:54 PM

PyCharm チュートリアル: PyCharm で項目を削除するには?

See all articles