【发布时间】:2011-11-15 19:38:54
【问题描述】:
我的数据库设置如下(简化):
+----------+---------+----------+
| path | val1 | val2 |
+----------+---------+----------+
| a/ | two | cow |
+----------+---------+----------+
| a/b/ | one | cat |
+----------+---------+----------+
| a/b/c | NULL | bat |
+----------+---------+----------+
path是主键(实际使用中,更像Smith/John/Mark/Jr)。
PHP提供路径$mypath = "a/b/c";
有没有办法构建一个非空值的结果集,从path 是$mypath 一部分的所有行中进行选择。
也就是说,要搜索最精确匹配的键,找到其中所有非空值,如果有空值,则从第二个“最佳”键中获取它们。
例如。 Mysql 应该检查 a/b/c 并返回一个 val2 = "bat",但看到 val1 设置为 NULL。
因此它应该检查 a/b/ 并设置 val1 = "one";
最终结果应该是array('val1' => "one", 'val2' => "bat")。
一位朋友告诉我有一种方法可以使用“LOCATE”,但我无法解决。
这可行吗?
知道 MySQL 的人可以帮我改写这个问题的标题,使其更具描述性吗?
谢谢。
【问题讨论】:
标签: mysql