MySQL中用select语句分类统计中以中文为条件查询时报错的问题

问题遇到的现象和发生背景

MySQL中用select语句分类统计中以中文为条件查询时报错的问题

问题相关代码,请勿粘贴截图

主表

img

SQL Query

SELECT
( SELECT COUNT(*) FROM `book` WHERE `book`.`publisher` = "文艺出版社") AS `文艺出版社`,

( SELECT COUNT(*) FROM `book` WHERE `book`.`publisher` = "人民邮电出版社" ) AS `人民邮电出版社`

( SELECT COUNT(*) FROM `book` WHERE `book`.`publisher` = "机械工业出版社" ) AS `机械工业出版社`

( SELECT COUNT(*) FROM `book` WHERE `book`.`publisher` = "清华大学出版社" ) AS `清华大学出版社`

( SELECT COUNT(*) FROM `book` WHERE `book`.`publisher` = "电子工业出版社" ) AS `电子工业出版社`
运行结果及报错内容

SQL Query

SELECT
( SELECT COUNT(*) FROM book WHERE book.publisher = "文艺出版社") AS 文艺出版社,

( SELECT COUNT(*) FROM book WHERE book.publisher = "人民邮电出版社" ) AS 人民邮电出版社

( SELECT COUNT(*) FROM book WHERE book.publisher = "机械工业出版社" ) AS 机械工业出版社

( SELECT COUNT(*) FROM book WHERE book.publisher = "清华大学出版社" ) AS 清华大学出版社

( SELECT COUNT(*) FROM book WHERE book.publisher = "电子工业出版社" ) AS 电子工业出版社

1064 - 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 'SQL Query

SELECT
( SELECT COUNT(*) FROM book WHERE book.publisher = "æ' at line 1

我的解答思路和尝试过的方法

我在想是不是查询条件的问题?

你这个需求,用这条SQL搞定
SELECT publisher,COUNT(*) FROM book group by publisher;

试一下这个语句。

SELECT * from
( SELECT COUNT(*) AS `文艺出版社` FROM book WHERE book.publisher = "文艺出版社") a,

( SELECT COUNT(*) AS '人民邮电出版社' FROM book WHERE book.publisher = "人民邮电出版社" ) b,

( SELECT COUNT(*) AS '机械工业出版社' FROM book WHERE book.publisher = "机械工业出版社" ) c,

( SELECT COUNT(*) AS '清华大学出版社' FROM book WHERE book.publisher = "清华大学出版社" ) d,

( SELECT COUNT(*) AS '电子工业出版社' FROM book WHERE book.publisher = "电子工业出版社" ) e;

查询结果

img

SQL Query去掉试试

sql query 开头是什么鬼

分号呢,一个分号都没有

SELECT
( SELECT COUNT(*) FROM book WHERE book.publisher = "文艺出版社") AS 文艺出版社,

( SELECT COUNT(*) FROM book WHERE book.publisher = "人民邮电出版社" ) AS 人民邮电出版社

( SELECT COUNT(*) FROM book WHERE book.publisher = "机械工业出版社" ) AS 机械工业出版社

( SELECT COUNT(*) FROM book WHERE book.publisher = "清华大学出版社" ) AS 清华大学出版社

( SELECT COUNT(*) FROM book WHERE book.publisher = "电子工业出版社" ) AS 电子工业出版社

请加上逗号,其次你这个真的可以用group by搞定