2016-03-03 40 views
-5

我的代碼:SQL創建獨特的ID其中沒有兩個表

SELECT FLOOR(RAND() * 9999) AS random_num FROM product_list 
WHERE 'random_num' NOT EXISTS 
(SELECT code_id FROM product_list) 
AND 'random_num' NOT EXISTS (SELECT p_code_id FROM item_group) 
LIMIT 1 

當PHP代碼,結果其分毫IM runit,請告知。

+1

「不工作」 - 不是一個問題 –

+0

有關@MitchWheat對不起,我becouse英語不好:) –

+0

'WHERE'random_num'NOT EXISTS'是無效的SQL。列名不得用單引號括起來。 ''random_num''是一個字符串常量。 'random_num'是一個列名。 Plus:在'exists'運算符的前面加上列名(或字符串常量)也是無效的 –

回答

0

嘗試

SELECT MAX(maxid) + 1 
FROM (
SELECT MAX(code_id) maxid FROM product_list 
UNION 
SELECT MAX(p_code_id) maxid FROM item_group 
) 
0

使用派生表,並調整NOT EXISTS S:

select random_num 
from 
(
    SELECT FLOOR(RAND() * 9999) AS random_num 
    FROM product_list 
) dt 
WHERE NOT EXISTS (SELECT * FROM product_list where random_num = code_id) 
    AND NOT EXISTS (SELECT * FROM item_group where random_num = p_code_id) 
LIMIT 1 
+0

非常感謝@jarlh –

相關問題