mysql复制表和修改表名
mysql中复制表结构和数据的方法(只复制表结构,不复制约束):
假设要建一个表tableNew,数据结构与已存在的表tableOld一致
CREATE TABLE tableNew SELECT * FROM tableOld WHERE 1<>1
如果要全部复制(包括数据),可以这样写
CREATE TABLE tableNew SELECT * FROM tableOld
这两天给人写一个电话本,需要修改数据库中的一个表的名称,修改表名的语句如下:
ALTER TABLE mytable RENAME TO newTable
mysql的CONCAT() 函数
在 “网站开发日志” 的一篇日志里看到 CONCAT这个函数,想起了项目里一个愚蠢的处理方式
http://www.61dh.com/blog/2009/09/mysql-select.html
数据库里有一个表
holidays,记录假期的数据
原本有字段如下
id, y, m, d, tt
因为某些原因,程序在想用户展示数据的时候显示完整日期,我原来的做法是往数据库里多添加一个字段fulldate,在保存ymd之后自动生成fulldate(这样现在想起来真的很多余)
今天才知道CONCAT这个函数,轻松地解决了我的需求。sql是这样的:
SELECT tt, CONCAT(y,'/',m,'/',d) as fulldate from tableName
基础差,真可怕
MYSQL的find_in_set()函数
今天见到有网友提问这么一个问题
select * from table where id in (1,2,3)
按照这样的sql语句查询出来的顺序应该是 id升序排序
可这位网友不知道什么原因,希望按照 1 ,3 ,2来排序。
自己以前没有想过这个问题,看到有网友解答
使用find_in_set()函数,具体实现如下:
select * from table where id in (1,2,3) order by find_in_set('id', '1,3,2')