我刚刚读完《SAM 的 24 小时自学 SQL》一书,我的任务是列出我们的事件站点的“site_code”与其各自的“site_path”与前缀“/var”相匹配/www/html' 已删除。在过去的一个小时左右的时间里,我一直在试图找出自己做错了什么,并且不知道此时还可以尝试什么。
这是我到目前为止所得到的:
SELECT site_name FROM example_tbl
WHERE active = 1
AND site_code IN
(SELECT TRIM(LEADING '/var/www/html/' FROM site_path) FROM example_tbl;);
尝试运行这给了我这个:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
我在 Ubuntu 14.10 版本上使用 Mysql 版本 14.14 Dustrib 5.5.38
嵌套查询本身可以正常工作,如果我删除“AND”之后的所有内容,第一部分也可以正常工作,所以我不确定为什么它们不能一起工作:\
任何帮助将不胜感激!
编辑: 抱歉,我应该更具体一点! 'site_code'、'site_path' 和 'site_name' 都是表 'example_tbl' 中的列,我正在尝试获取一个列表网站名称来打印,如下所示
输入:/var/www/html/example.company.com 输出:example.example.com
编辑2: 哦,对于上面的例子: “site_name”将是:example.company.com “site_code”将是:示例 “site_path”将是:/var/www/html/example.company.com
最佳答案
删除多余的分号。
SELECT site_name FROM example_tbl
WHERE active = 1
AND site_code IN
(SELECT TRIM(LEADING '/var/www/html/' FROM site_path) FROM example_tbl);
关于mysql - SQL 修剪语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29023899/