|
|
|
|
|
для: NIK
(15.02.2011 в 14:59)
| | Да, в обоих книгах примеры подобных запросов и их разбор можно найти. "MySQL 5. В подлиннике" больше подходит для чтения от начала до конца, из достоинств большой последовательный объем, из недостатков - не все нововведения MySQL 5 в ней описаны. В этом плане "MySQL на примерах" содержит больше нововведений MySQL 5, порядок изложения рецептурный (проблема - решение). Мы старались и тут охватить более или менее системно все особенности MySQL, но объем книги и охват вопросов в ней меньше чем в "MySQL 5. В подлиннике". | |
|
|
|
|
|
|
|
для: cheops
(15.02.2011 в 01:59)
| | спасибо, то что доктор прописал!
скажите, а такую тонкость можно было найти в вашей "MySQL на примерах"? Не могу определиться между "MySQL 5. В подлиннике" и mysql в примерах, хочется подтянуть свои знания в составлении запросов. | |
|
|
|
|
|
|
|
для: NIK
(15.02.2011 в 01:06)
| | С GROUP BY всегда так, он выберет вам первые значения (и всегда их будет выбирать), а при помощи ORDER BY RAND() вы только строки в результирующей таблице местами сможете менять, либо x первый, либо y. Сами значения не будут меняться. Попробуйте лучше самообъединение таблицы
SELECT a.type, a.value, b.type, b.value
FROM tbl AS a, tbl AS b
WHERE a.type = 'x' AND b.type = 'y'
ORDER BY RAND()
LIMIT 1
|
| |
|
|
|
|
|
|
| Есть таблица: id | type (ENUM(x,y) | value
Нужно выбрать 2 записи, первая с type = x, вторая с type = y и отсортировать их рандомно.
Пишу такой запрос
SELECT type, value FROM tbl WHERE type = 'x' OR type = 'y' GROUP BY type ORDER BY RAND() LIMIT 2
|
но постоянно получаю одно и тоже значение поля value. Подскажите, как правильно составить такой запрос. В идеале был бы результат в виде одной строки, со столбцами type_x | type_y в которых были бы соответствующие значения. | |
|
|
|
|