Если какие-нибудь функции на уникальность значение. Например у меня есть 2 колонки id , num PHP: <?php function test(){ $num = rand(1,99999); $query = "SELECT `num` FROM `table` WHERE `num`='"$num"' LIMIT 1"; $res = mysql_query($query) or die(mysql_error); if(mysql_num_rows($res)>0){ test(); } else{ $query = (INSERT INTO................); $res = mysql_query($query) or die(mysql_error()); if($res){ return true; } else{ return false; } } } ?>
по моему лучше делать order by rand или order by limit rand ммм id primary key и auto incremet должен быть, он и так уникальный... как выбрать уникальные значения замечательно гуглится
ORDER BY RAND если я не ошибаюсь, выборка случайных таблиц, а мне надо проверить есть ли запись в таблице если есть выбрать другое рандомное число и опять проверить если нету записать. Id auto incremet мне не подходит так как я записую в этой колонки юзеров которые нажали на маю кнопочку на сайте. Обьясню свою задачу которую решаю) Я делаю так сказать лотерейку, юзер нажимает у меня кнопочку на сайте и ему рандомно выдается билет, я в id записываю юзера которому попался билет выдавшийся рандомно скриптом) в num номер билета, после розыгрыша буду чистить таблицу.
Не знаю как там Mysql, но MSSQL умеет guid, а php умеет http://ru.php.net/manual/en/function.uniqid.php
Да меня все устраевает, только меня волнует если такой поиск будет проводится в 10000 строк, то это очень сильно нагрузит сайт(хотя я не расчитую на такое), мне просто интересует может есть специальная функция которая предназначена для эффективного поиска). я видимо неправильно задал вопрос, попробую перефразировать) Есть ли функция для быстрого поиска строки в mysql и вывода результата(типо есть такая строка или нет)? Я так понимаю SELECT это выборка?
Klin Да, именно. Правильно написал phpdude. Примерно так: PHP: function test(){ $num = rand(1,99999); $query = "SELECT count(*) FROM `table` WHERE `num`='$num'"; $res = mysql_query($query) or die(mysql_error); if( $res>0){ test(); } else{ $query = (INSERT INTO................); $res = mysql_query($query) or die(mysql_error()); if($res){ return true; } else{ return false; } } }