[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Хитрая выборка
Haotarez
Есть таблица в ней есть поля field1,field2,field25 ... field150 хочу выбрать например с field25 по field 100 - как это сделать не прибегая к их перечислению по одному в запросе?
Подскажите как правильно сделать выборку по многим полям (ели в MySQL это вообще реально).





Спустя 31 минута, 17 секунд (26.07.2011 - 18:56) Invis1ble написал(а):
Надо именно на SQL?
Можно с использованием пыха, примерно так:
$query = "SELECT `field" . implode('`,`field', range(25, 100)) . "` FROM `table`"; 

Спустя 6 минут, 14 секунд (26.07.2011 - 19:02) Winston написал(а):
Вот так
    $fields = implode('`,`field', range(25, 30));
echo $query = "SELECT `field" . $fields . "` FROM `table`";




Спустя 1 минута PHPprogrammer написал(а):
Опередил smile.gif
Invis1ble
Ну ты и метеор blink.gif

Спустя 17 часов, 51 секунда (27.07.2011 - 12:03) Haotarez написал(а):
На php и я сам знаю, задача - чистый SQL запрос..
Но спасибо за желание помочь.

Спустя 57 минут, 40 секунд (27.07.2011 - 13:01) Invis1ble написал(а):
Haotarez
К сожалению, я не силен в SQL.
Есть пердположение - сделать цикл и в нем конкатенировать строки с присвоением в переменную, а затем подставить эту переменную в запрос... но скорее всего это мегакостыль

Спустя 3 часа, 59 минут, 7 секунд (27.07.2011 - 17:00) alex12060 написал(а):
Можно процедурой замутить, но это - гемор smile.gif

Спустя 7 часов, 42 минуты, 56 секунд (28.07.2011 - 00:43) Invis1ble написал(а):
Haotarez
Вобщем написал маленькую ф-цию, но как впихнуть ее в запрос на выборку - не знаю... :)
DELIMITER //
CREATE FUNCTION get_fields (fromN INT, toN INT) RETURNS TINYTEXT
BEGIN
DECLARE qFields TINYTEXT;
WHILE fromN <= toN DO
SET qFields = CONCAT_WS('`,`field', qFields, fromN);
SET fromN = fromN + 1;
END WHILE;
RETURN CONCAT('`field', qFields, '`');
END //

SELECT (SELECT get_fields(25, 100)) FROM `table`

- не катит


_____________
самые трудные пути легче преодолевать за счет отсутствия конкуренции.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.