我有一个具有以下值的SQL表:
+---------+----------+
| post_id | path |
+---------+----------+
| 1 | 1/ |
| 2 | 1/2/ |
| 3 | 1/2/3/ |
| 4 | 1/2/3/4/ |
| 5 | 1/2/5/ |
+---------+----------+如何创建一个查询,以获得由斜杠分隔的值的确切数量的路径?
例如,如果我希望所有的post_ids路径都是1/%/%/ (其中每个%表示一个单数),就意味着返回任何形式的1/2/3/、1/2/5/,而不是1/2/3/4/。
发布于 2014-12-11 20:55:27
有几种方法可以做到这一点:
MySQL类运算符.
LIKE运算符提供两个通配符,百分比%(匹配任何零个或多个字符的字符串)和下划线_(匹配任何单个字符)。
SELECT * FROM `table` WHERE `path` LIKE '1/_/_/'
SELECT * FROM `table` WHERE `path` LIKE '1/%/%/'MySQL正则表达式.
SELECT * FROM `table` WHERE `path` regexp '^1/[0-9]/[0-9]/$'分层数据在MySQL中的应用
由于此结构涉及分层数据,因此您可能应该考虑将表结构更改为表示实际层次结构的内容。http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/有一个很好的关于这个主题的教程。
发布于 2014-12-11 19:41:35
https://stackoverflow.com/questions/27431022
复制相似问题