Процедура динамического поиска MySQL - PullRequest
3 голосов
/ 01 июля 2011

Запрос MySQL должен возвращать

1) TRUE вместе с разделенным запятыми (,) списком STATION_NAME из таблицы STATION WHERE STATION_NAME, равным LIKE INPUT, указанным пользователем.

FOR Например:

INPUT = A, OUTPUT= (Agra,Ajmer,Amritsar,Ambala).

INPUT = AM, OUTPUT= (Amritsar, Ambala)

2) FALSE, когда такой станции не существует

3) ERROR.

Подробно PROCEDURE будет оценено, так как я новичок в MySQL.Заранее спасибо ..:)

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

Вам не нужна процедура, только выбор, который возвращает одну строку в случае успеха или нет строк при ошибке:

select group_concat(station_name) from station where station_name like ?

где?является заполнителем для поиска, введенного пользователем.

group_concat является специфичной для mysql функцией.

Если вы должны использовать процедуру, она будетбыть примерно таким:

create procedure stationsearch (in likewhat varchar(255), out rslt text)
begin
    select group_concat(distinct station_name order by station_name) into rslt from station where station_name like likewhat;
end

Использовано так:

call stationsearch('Am%',@rslt);
select @rslt;
0 голосов
/ 15 сентября 2011
SELECT station_name
FROM station
WHERE SUBSTRING(station_name, 1, LENGTH( ? )) = ?;
...