MySQL中如何创建统计图书类别的MySQL语句?

MySQL中如何创建统计图书类别的MySQL语句?,第1张

SELECT SUM(male) AS male, SUM(female) AS female, SUM(middle) AS middle

FROM (

SELECT 0 AS name,

SUM(IF(name = 'male', 1, 0)) AS male,

SUM(IF(name = 'female', 1, 0)) AS female,

SUM(IF(name = 'middle', 1, 0)) AS middle

FROM a GROUP BY name

) AS t

GROUP BY t.name

写的有点复杂。

图片插入到数据库不是个好方法,如果你确实要存储图片到数据库的话,修改你的sql语句,不可以直接插入的。

INSERT into person(p_id,p_name,p_sex,p_age) value("asdsadssdsadfff","addsdsa","dddd",113)

update person set p_image = LOAD_FILE('D:\incident1.jpg') where p_id = "asdsadssdsadfff"

建议把'D:\incident1.jpg'放在mysl的安装目录里面,避免权限问题。。。

解释:sql必须要有对 'D:\incident1.jpg'文件 和相应的路径 读权限,要不也不可以的。 另外检查LOAD_FILE 函数是否被禁用。这个函数是个危险的函数,很容易利用该函数对数据库攻击。

LOAD_FILE(file_name):

读取file_name文件 并以字符串形式返回,使用这个函数时,file_name必须存在于服务器上,而且是完整路径,sql要具有file_name的读取权限,还有该文件的size必须小于数据库 max_allowed_packet的值,否则读取的值为空。如果文件不存在或者sql没有读权限,那么该函数讲返回null

类似

CREATE TABLE BOOKINFO (

ID bigint(20) NOT NULL AUTO_INCREMENT,

BOOKNAME VARCHAR(45),

PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8

存储引擎和默认字符集选择你需要的就好,AUTO_INCREMENT=10001表示的就是从10001开始自增

插入时使用类似:

insert into bookinfo values (null,'BOOK1')

就可以实现自增。

需要注意的是,设为自增的列(这里是ID)一定入索引(不一定需要主键索引,任何索引都行,但是没有比把自增列当主键更合适的了吧)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11467994.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存