Прочитав несколько тем в этом разделе, я убедился в том, что (извините) причина каких-либо неудач - это незнание SQL(это относится и к MySql и MsSql и к Oracle) и PHP тут нипричем. Я конечно не самый крутой программер на Sql, но если будут вопросы обращайтесь, помогу чем смогу
структурированный язык запросов уже затем учить следует, что он ум в порядок приводит ))) " М.В. Ломоносов "
Вот на мой взгляд интересная задачка (сам решить не смог, не знаю даже, есть ли решение) Дана таблица, в ней у каждой записи есть уникальный id. Дано некое число, нужно составить запрос, который вернет первый id больше этого числа, которого НЕТ в таблице. Пример: идут записи 1 ------------- 2 ------------- 4 ------------- 6 ------------- 7 ------------- 9 ------------- QUERY(6) = QUERY(7) = 8 Желательно сделать именно запрос, а не хранимую процедуру
Код (Text): SELECT (b.id+1) AS need FROM table AS a RIGHT JOIN table AS b ON (a.id-1)=b.id WHERE a.id IS NULL ORDER BY need ASC LIMIT 1
simpson Классно. Надо запомнить Только чтобы выдавало значение больше некоторого значения надо еще немного модифицировать Код (Text): SELECT (b.id+1) AS need FROM table AS a RIGHT JOIN table AS b ON (a.id-1)=b.id WHERE a.id IS NULL AND b.id>=6 ORDER BY need ASC LIMIT 1 Запрос получен экспериментально, поэтому может я не правильно указал условие.
Извините за долгое отсутствие, предлагаю другоой SQL запрос Select Min(a.mi) from( select id+1 mi from table Where id >= константа1) a where a.mi not in (select id from table Where id > константа1) Проверено под Oracle и MsSql.