Mysql 网站中的Sql错误

Mysql 网站中的Sql错误,mysql,sql,database,Mysql,Sql,Database,我有一个带有以下SELECT语句的查询: asciisubstringSELECT column\u name FROM information\u schema.columns,其中table\u name=\'admin-modules\'LIMIT 1,1,1>0-- 但这给了我以下错误: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解在第1行“\'admin-modules\'limit 1,1,1>0---”附近使用的正确语法 有人能帮我找出出错的原因吗?这与SQL

我有一个带有以下SELECT语句的查询:

asciisubstringSELECT column\u name FROM information\u schema.columns,其中table\u name=\'admin-modules\'LIMIT 1,1,1>0--

但这给了我以下错误:

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解在第1行“\'admin-modules\'limit 1,1,1>0---”附近使用的正确语法


有人能帮我找出出错的原因吗?

这与SQL语法相去甚远。我能从中得到的最好结果是,您尝试执行以下命令:

SELECT column_name 
FROM information_schema.columns 
WHERE table_name =\'admin-modules\' 
LIMIT 1
如果您将此结果保存为结果,也许以后可以这样做

ascii(substring(result, 1),1)
但是我仍然不知道>0-在这里做什么。我想没人知道你不需要用反斜杠来逃避。sql查询应为:

select column_name from information_schema.columns where table_name = 'admin-modules' limit 1,1

见上面我的笔记。语法错误在于嵌套初始select,而不是尝试在FROM/WHERE之前对所选列执行asciisubstring

设置:

查询:

小提琴

您必须将所选列放在查询的正确位置。所以这会将您上面的选择更改为

从information_schema.columns中选择asciisubstringcolumn_name,1,1>0作为isASCII,其中table_name='admin modules'限制为1


“-”及其后的任何内容都将被忽略,因为“-”是SQL单行注释指示符。

您的错误消息会告诉您问题所在。还要注意,“限制1,1”会选择查询中的第二行,而不是我假设您所要的第一行。”。带有2个参数的限制是限制偏移量,计数。第一行的偏移量应为0。仅第一行的限制值应为0,1。如果查询中没有处理太多行,请选择TOP 1。编辑:Oops。MySQL不做TOP。忽略那部分-/我不知道为什么您认为这与SQL语法相去甚远。您甚至建议将更改SQL语法作为解决方案的一部分。
CREATE TABLE foo (column_name varchar(10), table_name varchar(10));

INSERT INTO foo (column_name, table_name)
SELECT 'a','table1'  UNION ALL
SELECT 'b','table1'  UNION ALL
SELECT 'col1','table2'  UNION ALL
SELECT 'c3','table1'  
;
SELECT 
      substring(column_name,1,1) AS subCN
    , ascii(substring(column_name,1,1)) AS asciiSubCN
    , ascii(substring(column_name,1,1)) > 0 AS isASCII
FROM foo 
WHERE table_name='table1' 
LIMIT 0,1  -- This can be LIMIT 1 for just 1st row.
;
subCN | asciiSubCN | isASCII :---- | ---------: | -------: a | 97 | 1