首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取具有特定值数的路径

问获取具有特定值数的路径
EN

Stack Overflow用户
提问于 2014-12-11 19:38:21
回答 2查看 49关注 0票数 0

我有一个具有以下值的SQL表:

代码语言:javascript
复制
+---------+----------+
| 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/。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-11 20:55:27

有几种方法可以做到这一点:

MySQL类运算符.

LIKE运算符提供两个通配符,百分比%(匹配任何零个或多个字符的字符串)和下划线_(匹配任何单个字符)。

代码语言:javascript
复制
SELECT * FROM `table` WHERE `path` LIKE '1/_/_/'

SELECT * FROM `table` WHERE `path` LIKE '1/%/%/'

MySQL正则表达式.

代码语言:javascript
复制
SELECT * FROM `table` WHERE `path` regexp '^1/[0-9]/[0-9]/$'

分层数据在MySQL中的应用

由于此结构涉及分层数据,因此您可能应该考虑将表结构更改为表示实际层次结构的内容。http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/有一个很好的关于这个主题的教程。

票数 0
EN

Stack Overflow用户

发布于 2014-12-11 19:41:35

这里有一个使用regexp的选项

代码语言:javascript
复制
select *
from yourtable
where path regexp '1/[0-9]/[0-9]/$'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27431022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档