如何 select char_length of (select ...) in mysql

How to select char_length of (select ...) in mysql

我必须 select 字符串的字符长度,我可以通过另一个 select.

SELECT DISTINCT(TABLE_SCHEMA) FROM INFORMATION_SCHEMA.TABLES LIMIT 0, 1

returns

TABLE_SCHEMA
mysql

现在我想得到 char_length 这个 mysql 并在一个查询中完成。

这些查询

SELECT CHAR_LENGTH(SELECT DISTINCT(TABLE_SCHEMA) FROM INFORMATION_SCHEMA.TABLES LIMIT 0, 1)
SELECT CHAR_LENGTH(DISTINCT(TABLE_SCHEMA) FROM INFORMATION_SCHEMA.TABLES LIMIT 0, 1)

return语法错误。

那么如何创建查询?

首先:如果您只是查找数据库列表,您希望使用 information_schema.schemata 而不是 information_schema.tables。这避免了使用 DISTINCT 的需要,然后你可以简单地做:

SELECT schema_name, CHAR_LENGTH(schema_name) schema_name_length
FROM information_schema.schemata
LIMIT 0, 1

注意:没有 ORDER BY 子句的 LIMIT 不是好的做法。您无法预测哪些记录会先出现。


如果出于某种原因您确实想坚持使用当前查询,那么您需要将其转换为子查询,如下所示:

SELECT TABLE_SCHEMA, CHAR_LENGTH(TABLE_SCHEMA) TABLE_SCHEMA_LENGTH
FROM (
    SELECT DISTINCT(TABLE_SCHEMA) FROM INFORMATION_SCHEMA.TABLES LIMIT 0, 1
) x