MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME

我在執行這句SQL的時候提示了此錯誤:設計

SELECT
    *
FROM
    t_product
WHERE
    c_sid 
IN
    ( SELECT
				c_id
			FROM
				t_shops
			WHERE
				c_ditclass=17
			ORDER BY
				RAND()
			limit 5
    )
GROUP BY c_sid

字面意思就是這個版本的MYSQL不支持LIMIT與後面那些東西一塊兒使用。code

不明白爲何要這樣設計。it

由於咱們將子查詢語句再嵌套一下,就不會出錯了。table

把原來的語句: ……IN (……LIMIT)……class

改成: ……IN (……FROM(……LIMIT))…… 的格式,就不會出這個錯了。im

但如今又會提示新的錯誤: Every derived table must have its own alias查詢

就是說,每一個派生的表都必須擁有別名 因此最後改成這樣就不會出錯了: ……IN (……FROM(……LIMIT) AS 別名)……tab

相關文章
相關標籤/搜索