mysq集合差操作_mysql操作集合 常用篇

增删改查

//where 1 =1;

//这个1=1常用于应用程序根据用户选择项的不同拼凑where条件时用的。

$sql = 'delete from MyClass where id=1';

#mysql 字段追加字符串

$sql = "update `news` set `content`=CONCAT(content,'今天又看了') where `id`=$_GET[id]";

#mysql 替换字段//删除字段

REPLACE(string,search_str,relpace_str)

$sql = "UPDATE `tbl_develop_app_tools` SET `AppID` = REPLACE ( `AppID`, '2', '') where `ToolsID` =1";

$sql = "update person set number=null,name=null";

//type中以 1,3,4的格式存储.

$this->db->where("FIND_IN_SET($apptype,TypeID) !=", 0); FIND_IN_SET({$v},{$k})

//select * from treenodes where FIND_IN_SET(id,'1,2,3,4,5'); 与where in 相反

//按照既定的顺序排序 指定顺序

$sql = 'select * from tb order by decode(blogid,3,1,2), blogid'; //312 456789

//中文排序

$sql = "SELECT * FROM tbl_lib_gametype WHERE `IsH5`='1' and State='0' order by convert(Title USING gbk) COLLATE gbk_chinese_ci";

//重复的值也显示一次

$sql = 'SELECT DISTINCT Company FROM Orders';

#order by 、group by 、having的用法区别 having(并且)

//group by 分组

//having 分组过滤

$sql = 'select count(pid) , pid from products group by uid having count(pid)> 5'; //having count(pid) between 3 and 5

查找重复的数据

$this->DB::whereRaw("SELECT COUNT( * ) AS c, book_name FROM `table_keywords_ebook` GROUP BY keyword HAVING c >1")->get();

迁移数据表

RENAME TABLE old_table TO new_table

rename table a.table to b.table

如果存在则更新,不存在则插入新数据

$sql = "INSERT INTO {$ecs->table(‘cat_lang')} (cat_id,lang_id,cat_name,keywords,cat_desc)

VALUES({$cat_id},{$k},'{$val['cat_name']}','{$val['keywords']}','{$val['cat_desc']}')

ON DUPLICATE KEY UPDATE cat_name='{$val['cat_name']}',cat_desc='{$val['cat_desc']}',keywords='{$val['cat_desc']}'";

批量更新一个表

UPDATE categories

SET display_order = CASE id

WHEN 1 THEN 3

WHEN 2 THEN 4

WHEN 3 THEN 5

END,

title = CASE id

WHEN 1 THEN 'New Title 1'

WHEN 2 THEN 'New Title 2'

WHEN 3 THEN 'New Title 3'

END

WHERE id IN (1,2,3)

//这句sql的意思是,更新display_order 字段,如果id=1 则display_order 的值为3,如果id=2 则 display_order 的值为4,如果id=3 则 display_order 的值为5。

foreach ($array['PriceDiscount'] as $FeeTypeID => $val) {

$sql = "UPDATE $table SET PriceDiscount = CASE Level ";

foreach ($val as $Level => $vals) {

$Levels = implode (",", array_keys($val));

$sql .= sprintf("WHEN %d THEN %d ", $Level, $vals);

}

$sql .= "END WHERE Level IN ($Levels) AND FeeTypeID = $FeeTypeID";

echo $sql.'
';

}

//表数据迁移

update tbl_novel_version_part a ,tbl_novel_version_part_page b SET a.txt_url=b.url , a.url=NULL

WHERE a.novel_id=b.novel_id AND a.part_id=b.part_id and a.txt_url IS NULL AND a.`status` != 2 AND a.novel_id = 3736;

//创建一个库

CREATE DATABASE IF NOT EXISTS $yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

//创建一个表

mysql>use test;

mysql>CREATE table employees(id int(6),name varchar(30),hired date null,job_code int(6), store_id int(6)) engine=MyISAM default charset=utf8 ;

//复制表结构

mysql>CREATE table t3 like t1;

//复制表数据

mysql>INSERT into t3 select * from t1 ;

INSERT INTO tbl_company_organ (SELECT * FROM tbl_company_organ_test WHERE OrganSN NOT IN (SELECT tbl_company_organ.OrganSN FROM tbl_company_organ ) );

// 新增/修改字段

mysql>ALTER TABLE `tbl_lib_feetype` ADD `IsH5` TINYINT( 4 ) NOT NULL DEFAULT '0' COMMENT '是否奇优用户' AFTER `Title`

mysql>ALTER TABLE `tbl_lib_feetype` DROP `IsH5`;

//插入

mysql>INSERT INTO table_name(column_list,column_list) VALUES(val1,val2),(val1,val2),(val1,val2),(val1,val2);

//创建一个用户

mysql>CREATE USER 'username'@'host' IDENTIFIED BY 'password';

//授权一个用户

mysql>grant all on *.* to 'username'@'192.168.1.170' identified by '456';

//修改索引

//alter table (修改)来创建普通索引、unique索引或primary key索引

mysql>ALTER TABLE table_name ADD INDEX index_name(column_list); //普通索引

mysql>ALTER TABLE table_name ADD UNIQUE(column_list); //唯一索引 作为唯一索引的列不能有重复的值

mysql>ALTER TABLE table_name ADD PRIMARY KEY(column_list); //主键索引

//创建索引

mysql>CREATE TABLE table_name(id int unsigned auto_increment primary key,name varchar(30));

mysql>CREATE INDEX index_name ON table_name(column_list);

mysql>CREATE UNIQUE INDEX index_name ON table_name(column_list); //唯一索引

//删除索引

mysql>DROP INDEX index_name ON table_name;

mysql>ALTER TABLE index_name DROP INDEX index_name;

mysql>ALTER TABLE index_name DROP PRIMARY KEY;

//删除重复的值 //只保留一条记录

DELETE FROM tbl_book_info WHERE (book_name, book_author) IN (

SELECT

t.book_name,

t.book_author

FROM (SELECT book_name,book_author FROM tbl_book_info GROUP BY book_name,book_author HAVING count(1) > 1) t

);

DELETE FROM company WHERE (id) IN (

SELECT

t.id

FROM (SELECT id FROM company GROUP BY id HAVING count(1) > 1) t

)

//添加自增

mysql>ALTER TABLE table_name MODIFY id int UNSIGNED NOT NULL AUTO_INCREMENT;

//删除自增

mysql>ALTER TABLE table_name MODIFY id int UNSIGNED NOT NULL AUTO_INCREMENT;

//创建一个视图 更像一个中介,缓存

mysql>CREATE VIEW v_name as select * from t1 where id > 4 and id <8;

mysql>drop table 数据表名; //删除视图

//删除一个库

mysql>drop database 数据库名;

//删除一个表

mysql>drop table 数据表名;

//清空一张表中的内容

mysql>truncate TABLE XXX;

--------------------------------自动增量-----------------------------------------

//修改自增量 AUTO_INCREMENT = 1

ALTER TABLE table_name AUTO_INCREMENT = 1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值