MySQL动态搜索查询程序

时间:2011-07-01 06:35:25

标签: mysql procedure

MySQL查询应该返回

1)TRUE以及来自表格STATION_NAME的逗号(,)分隔的STATION WHERE STATION_NAME列表LIKE INPUT指定购买用户。< / p>

FOR Ex:

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

INPUT = AM, OUTPUT= (Amritsar, Ambala)

2)FALSE,当没有这样的电台时

3)ERROR

详细PROCEDURE将不胜感激,因为我是MySQL新手。 在此先感谢.. :))

2 个答案:

答案 0 :(得分:2)

您不需要一个过程,只需一个成功返回一行或失败时没有行的选择:

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;

答案 1 :(得分:0)

SELECT station_name
FROM station
WHERE SUBSTRING(station_name, 1, LENGTH( ? )) = ?;