mysql模糊查询最底一层数据
时间: 2023-11-19 13:42:11 浏览: 42
要在MySQL中进行模糊查询并找到最底层的数据,你可以使用递归查询或使用自连接来实现。下面是两种方法的示例:
方法一:使用递归查询
```sql
WITH RECURSIVE cte AS (
SELECT id, parent_id, name
FROM your_table
WHERE parent_id IS NULL -- 根节点
UNION ALL
SELECT t.id, t.parent_id, t.name
FROM your_table AS t
INNER JOIN cte ON t.parent_id = cte.id
)
SELECT *
FROM cte
WHERE name LIKE '%keyword%' AND id NOT IN (SELECT parent_id FROM your_table)
```
上述查询使用CTE(Common Table Expression)和递归查询来获取所有的层级关系,并筛选出满足模糊查询条件并且没有子节点的最底层数据。
方法二:使用自连接查询
```sql
SELECT t1.*
FROM your_table AS t1
LEFT JOIN your_table AS t2 ON t1.id = t2.parent_id
WHERE t1.name LIKE '%keyword%' AND t2.id IS NULL
```
上述查询使用自连接将表与自身连接,并筛选出满足模糊查询条件并且没有子节点的最底层数据。
注意,以上示例中的"your_table"是你的表名,"keyword"是你要查询的关键字。你需要根据自己的实际情况修改这些部分。