2016-05-14 5 views
0

Можно ли переместить случайную строку (с одним столбцом) в другую таблицу таким образом, чтобы никто не получал эти данные, даже если запросит ее одновременно?MySQL перемещает случайную строку из одной таблицы в другую

Например: если вы открываете мою страницу, вы получаете данные из MySQL, которые никто не получит, даже если открыть эту страницу одновременно с вами.

Теперь я делаю это так:

mysql_query("INSERT INTO `ShowRow` SELECT * FROM `AllRows` WHERE 1 LIMIT 1"); 
mysql_query("DELETE FROM `AllRows` LIMIT 1"); 

Можно ли сделать какой-то другой лучше? Или как SELECT какой-то конкретной строки, если есть только один столбец?

+0

почему вы обеспокоены вашей базы данных скомпрометирован? в чем причина? –

+0

^или триггер. В любом случае, зачем использовать предложение WHERE, если он существует только в столбце? – Chay22

+1

Невозможно добиться того, что вы пытаетесь даже при случайном выборе, используя функцию «rand», если только каждый показанный элемент не хранится в другой таблице, так что следующий выбор может перекрестно проверять, показывает ли его в настоящее время кто-то другой. –

ответ

0

Спасибо всем, но я пришел, чтобы сделать это таким образом:

$accCount = mysqli_query($connect, "SELECT * FROM AllRows"); 
$accCount = mysqli_num_rows($accCount); 
$RandAcc = rand(0, $accCount); 
$result = mysqli_query($connect, "SELECT * FROM `AllRows`"); 
$ReplaceRandAcc = mysqli_result($result, $RandAcc); 

mysqli_query($connect, "INSERT INTO `ShowRow` SELECT * FROM `AllRows` WHERE login='".$ReplaceRandAcc."'"); 
mysqli_query($connect, "DELETE FROM `AllRows` WHERE login='".$ReplaceRandAcc."'"); 

function mysqli_result($res, $row, $field=0) { 
    $res->data_seek($row); 
    $datarow = $res->fetch_array(); 
    return $datarow[$field]; 
} 
0

Вы можете использовать функцию RAND() для упорядочивания строк случайным образом и первыми.

SELECT * FROM AllRows ORDER BY RAND() LIMIT 1, 1

+0

Эта ссылка вы оставили http://sql.sh/fonctions/rand - Не каждый может понять французский язык. Стек - это в основном англоязычный сайт. –

+0

Извините, конечно, я отвечаю слишком быстро: / – Norckan

Смежные вопросы