ngtwewy

tags字段是逗号隔开tag id。查询一select i.id, i.title, i.tags, (select GROUP_CONCAT(tb_tag.title SEPARATOR ',') from tb_tag where id in (i.tags) ) as tags_title from tb_item as i; 结果:查询二select i.id, i.title, i.tags, (select GROUP_CONCAT(tb_tag.title SEPARATOR ',') fro

2021-01-13    MySQL    40
ngtwewy

(一)建表规约1. 【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint( 1 表示是, 0 表示否)。说明: 任何字段如果为非负数,必须是 unsigned。注意: POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在设置从 is_xxx 到 Xxx 的映射关系。数据库表示是与否的值,使用 tinyint 类型,坚持 is_xxx 的命名方式是为了明确其取值含义与取值范围。正例: 表达逻辑删除的字段名 is_deleted, 1 表示删除, 0 表示未删除。2. 【强制】表名、字段名必须使用小写字母或数字, 禁止出现

2020-04-24    MySQL    156
ngtwewy

1.切记不要用字符串存储日期我记得我在大学的时候就这样干过,而且现在很多对数据库不太了解的新手也会这样干,可见,这种存储日期的方式的优点还是有的,就是简单直白,容易上手。但是,这是不正确的做法,主要会有下面两个问题:i. 字符串占用的空间更大!ii. 字符串存储的日期比较效率比较低(逐个字符进行比对),无法用日期相关的 API 进行计算和比较。2.Datetime 和 Timestamp 之间抉择Datetime 和 Timestamp 是 MySQL 提供的两种比较相似的保存时间的数据类型。他们两者究竟该如何选择呢?通常我们都会首选 Timestamp。 下面说一下为什么这样做!2.1 Da

2020-03-17    MySQL    170
ngtwewy

本方法不易维护,建议取出数据,在程序中递归,例如 https://javascript.net.cn/article?id=654代码如下:delimiter / DROP FUNCTION IF EXISTS `getChild` / CREATE FUNCTION `getChild`(rootId INT) RETURNS VARCHAR(1000) BEGIN DECLARE ptemp varchar(1000); DECLARE ctemp varchar(1000); SET ptemp = '#'; SET ctemp =ca

2020-02-13    MySQL    184
ngtwewy

1, 指定了AUTO_INCREMENT的列必须要建索引,不然会报错,索引可以为主键索引,当然也可以为非主键索引。(不一定要做主键)2, 指定了auto_increment的列,在插入时:如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。3,当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值。4,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。5,对于MyISAM表,如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错。如果

2019-07-26    MySQL    171
ngtwewy

一般不要使用保留关键字。如果使用了保留关键字,将关键字前后加" ` " 可以解决问题。 MySQL允许部分关键字用做未引起来的识别符,因为许多人以前曾使用过它们。下面列出了一些例子: ACTION,BIT,DATE,ENUM,NO,TEXT,TIME,TIMESTAMP MySQL保留关键字如下: ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH

2019-07-17    MySQL    178
ngtwewy

有一个表有十万条数据,SELECT COUNT(*) FROM t_tablename; 时间长达10秒以上。 解决办法,把 Primary Key 加上 Unique 约束了,速度变成30毫秒了,解决了。 不太清楚原因,先记着。 参考:https://blog.csdn.net/landstream/article/details/79673176

2019-05-17    MySQL    174
ngtwewy

INSERT INTO tp_article( name, user_id, category_id, thumbnail, content, description, create_time, tags ) SELECT title, FLOOR(2 + (RAND() * 10)), category, thumbnail, content, description, UNIX_TIMESTAMP(create_time) + ce

2018-10-26    MySQL    186
ngtwewy

1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql 命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword --databases db1 db2 > db1db2.sql 4、导入某些库mysql命令行mysql>source db1db2.sql; 5、导入某个库系统命令行mysql -uusername -ppassword db1 或mysql命令行mysql>use db1; my

2018-10-09    MySQL    170
ngtwewy

索引的选择性是指索引列中不同值的数目和表的记录数的比值。假如表里面有1000条数据,表索引列有980个不同的值,这时候索引的选择性就是980/1000=0.98 。索引的选择性越接近1,这个索引的效率很高。 e.g. 性别可以认为是3种,男,女,其他。如果创建索引,查询语句 性别=‘男'的数据,索引的选择性就是3/1000=0.003。索引的选择性值很低,对查询提升不大,所以性别建索引意义不大

2018-09-24    MySQL    153
ngtwewy

创建表 CREATE TABLE `kfinfo` (     `Name` varchar(100) DEFAULT NULL,     `CardNo` varchar(50) DEFAULT NULL,     `Descriot` varchar(150) DEFAULT NULL,     `CtfTp` varchar(50) DEFAULT NULL,     `CtfId` varchar(50) DEFAULT NULL,     `Gender` varchar(50) DEFAULT NULL,     `Birthday` varchar(50) DE

2018-09-24    MySQL    161
ngtwewy

MYSQL导入数据出现The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 查看 secure-file-priv 当前的值是什么 show variables like '%secure%'; 那么我们就需要改配置文件my.ini secure-file-priv='' 重启MySQL

2018-09-24    MySQL    188
ngtwewy

用单数形式更佳,理由如下: 1、概念直观。 你有一个袋子,里面有好多个苹果,你会说这是个苹果袋。但无论里面有0,1,百万个苹果,它依然是个袋子。表也是如此,表明需要描述清楚,表里面包含的对象,而非有多少个数据。 2、便利性 单数形式更简单。有一些单词,它的复数形式可能是非常规的,或者就没有复数形式,但是单数不一样,单数形式则没那么多讲究。有些单词的复数,可能会想到你头大,可能得好好google才出来 3、优雅 特别是一些master-detail形式的资源名称,统一用单数,读起来更方便,对齐更整齐,从顺序上更有逻辑性。 对比下 单数: Order OrderDeta

2018-09-15    MySQL    205
ngtwewy

使用自增长字段为主键有不少问题,比如维护或是在大型分布应用中主键冲突的解决等。在一些大型分布应用中主键一般选用guid,这可以有效的避免主键冲突,减少对主键维护的工程。当然,对于中小型的应用,自增长字段的好处更多一些,简单、快速。 Sqlite中,一个自增长字段定义为INTEGER PRIMARY KEY AUTOINCREMENT,那么在插入一个新数据时,只需要将这个字段的值指定为NULL,即可由引擎自动设定其值,引擎会设定为最大的rowid+1。当然,也可以设置为非NULL的数字来自己指定这个值,但这样就必须自己小心,不要引起冲突。当这个rowid的值大于所能表达的最大值 922337

2018-08-09    MySQL    155
ngtwewy

SQLite目前还不支持drop column,所以必须想出另外一种方法来进行表字段的删除。 如下sql语句会复制一个和record表一样表结构的temp表出来,但是我们想要的是去除某一个字段(例如去除record表中的name字段,就不要复制它就好了),所以sql语句如下: create table temp as select recordId, customer, place, time from record where 1 = 1; 这样复制出来的表就会缺少“name”字段,然后我们删除旧表并修改新表名即可。 drop table reco

2018-08-03    MySQL    157
随机推荐
原生javascript左右滚动特效
HTTP Authorization 之 Basic Auth
vue.js国际化 vue-i18n插件
PHP 为什么容易被渗透
AES ECB CBC
发送header文件头信息实现文件下载
使用阿里云储 ossutil 自动备份 CentOS 服务器
PS手绘20171008
Javascript去字符串前后空格5种实现方法及比较
Vue2.5中,父组件created钩子异步获取数据,子组件没有更新绑定的参数