MySQL动态搜索查询程序

发布于 2024-11-18 03:56:13 字数 452 浏览 2 评论 0原文

MySQL 查询应返回

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

例如:

INPUT = A,OUTPUT=(阿格拉、阿杰梅尔、阿姆利则、安巴拉)

INPUT = AM, OUTPUT= (Amritsar, Ambala)

2) FALSE,当不存在此类站时

3) ERROR

详细的PROCEDURE将不胜感激,因为我是MySQL的新手。 提前致谢.. :)

The MySQL query should return

1) TRUE along with Comma(,) separated list of STATION_NAME from a table STATION WHERE STATION_NAME is LIKE the INPUT specified buy the user.

FOR Ex:

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

INPUT = AM, OUTPUT= (Amritsar, Ambala)

2) FALSE, when no such station exists

3) ERROR.

Detailed PROCEDURE will be appreciated, as I am new to MySQL.
Thanks in advance.. :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小矜持 2024-11-25 03:56:13

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

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;

You don't need a procedure, just a select that returns one row on success or no rows on failure:

select group_concat(station_name) from station where station_name like ?

where ? is a placeholder for the user entered search.

group_concat is a mysql-specific feature.

If you must use a procedure, it would be something like this:

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

Used like this:

call stationsearch('Am%',@rslt);
select @rslt;
梦途 2024-11-25 03:56:13
SELECT station_name
FROM station
WHERE SUBSTRING(station_name, 1, LENGTH( ? )) = ?;
SELECT station_name
FROM station
WHERE SUBSTRING(station_name, 1, LENGTH( ? )) = ?;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文