2017-08-02 88 views
0

我試圖生成一個不在數據庫中的mysql表上的隨機4位數字。我用這個:在mysql表格中獲取唯一的隨機數,格式爲

$res = mysqli_query($conn, "SELECT FLOOR(RAND() * 9999) AS random FROM table WHERE 'random' NOT IN (SELECT v_code FROM table) LIMIT 1"); 
if($res->num_rows>0){ 
    while($row = $res->fetch_assoc()){ 
     echo $row['random']; 
    } 
} 

這是好的,生成唯一的隨機數,但在我的表在v_code列中的值與此格式:20171234.它作爲前綴。我的問題是如何以這種格式搜索一個隨機數字?另外,我希望這個隨機數具有前導零。例如0123,0321,0432等 要搜索的最終號碼具有這種格式:例如, 0123或 1234因爲這是數據庫表中v_code列的格式。請幫助我。謝謝。

回答

0

你可以做到這一點不喜歡

$res = mysqli_query($conn, "SELECT FLOOR(RAND() * 9999) AS random FROM table WHERE 'random' NOT LIKE IN (SELECT v_code & '%' FROM table) LIMIT 1"); 
if($res->num_rows>0){ 
    while($row = $res->fetch_assoc()){ 
     echo $row['random']; 
    } 
} 

或REGEXP可能更有效

$res = mysqli_query($conn, "SELECT FLOOR(RAND() * 9999) AS random FROM table WHERE 'random' REGEXP (SELECT v_code & '%' FROM table) LIMIT 1");