是否可以在 mySQL 中编写一个函数来检查 SELECT 查询的值,如果它!= 0,继续运行该函数并添加到结果数组中?
我有几个条目标记为related_id
=0
其余的附有实际的正数。
我正在尝试创建一个将不断循环通过 sql 函数的单个查询,检查并查看检索到的related_id
结果是否为 0。如果不是,则它将再次运行,将新检查的行添加到结果数组并继续直到找到一个 0。
DB的设置方式,总是会出现0,并且会通过id进行搜索,所以应该只有一个结果。
我正在使用稍作修改的标记系统。
keywords_id | keyword | related_id
------------------------------------
1 | sports | 0
2 | baseball | 1
3 | football | 1
4 | pitchers | 2
如果我传入related_id
=2
我希望返回一个产生的数组:
array
[0]
keyword => 'sports'
keywords_id => '1'
related_id => '0'
[1]
keyword => 'baseball'
keywords_id => '2'
related_id => '1'
[2]
keyword => 'pitcher'
keywords_id => '4'
related_id => '2'
我尝试了使用 IF 和 THEN 的运气,但我只是没有看到足够的示例,而且很难在网上找到可靠的教程。谢谢!
SELECT k.*
FROM keywords k
WHERE keywords_id = 2
上面的查询基本上会启动它。keywords_id
是related_id
通过的。因此以上将返回keywords_id: 2 |keyword: baseball |related_id: 1
因为related_id 1 不是0,所以我需要再次运行它。
我意识到这可以通过一些额外的查询在 PHP 中完成……我应该这样做吗?我认为它可以在阅读有关函数后在 mySQL 中完成。我只是想不通。