我正在寻找一种方法来显示我在数据库中的表名,其名称以" _1"结尾。
我尝试使用命令:
.tables '%_1';
不幸的是,下划线符号用于表达式匹配,因此它返回了表格,例如:
" 125_1"" 125_11"" 125_21&#34 ;.
在这个例子中只有第一个有趣,我不会显示完整的结果,因为有数百个表。所以我试过这样的事情:
.tables '%_1' ESCAPE '_';
它给了我完全相同的结果。 如果您有解决方案来克服下划线符号的问题,请发布它。 请记住,我在正则表达式中有数百个名称遵循此模式的表:" ^ \ d + _ \ d + $"
答案 0 :(得分:1)
这不是ESCAPE clause的工作原理。要搜索下划线,必须使用转义字符转义下划线:
LIKE '%#_1' ESCAPE '#'
无论如何,.tables
不是SQL命令而忽略了ESCAPE子句。要进行自己的搜索,您必须运行自己的查询:
SELECT name
FROM sqlite_master
WHERE type = 'table'
AND name LIKE '%#_1' ESCAPE '#';