最近很多小伙伴都在问MySQL按特定ID值排序和mysql按指定值排序这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展MysqlSQLDELETEJOIN按特定顺序(由于限制)、M
最近很多小伙伴都在问MySQL按特定ID值排序和mysql按指定值排序这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Mysql SQL DELETE JOIN按特定顺序(由于限制)、Mysql中设置指定IP的特定用户及特定权限、Mysql入门MySQL按照汉字的拼音排序简单实例、mysql多个值排序,类似置顶等相关知识,下面开始了哦!
本文目录一览:- MySQL按特定ID值排序(mysql按指定值排序)
- Mysql SQL DELETE JOIN按特定顺序(由于限制)
- Mysql中设置指定IP的特定用户及特定权限
- Mysql入门MySQL按照汉字的拼音排序简单实例
- mysql多个值排序,类似置顶
MySQL按特定ID值排序(mysql按指定值排序)
是否可以使用预定义的一组列值(ID)按“ order by”在mysql中排序,例如:order by(ID =
1,5,4,3),因此我会在其中得到记录1、5、4、3订购吗?
更新: 关于滥用mysql ;-)我必须解释为什么我需要这个…
我希望记录每5分钟随机更改一次。我有一个cron任务来执行更新表,以在其中放置不同的随机排序顺序。只有一个问题!分页。我将有一位访问者来到我的页面,我给他前20个结果。他将等待6分钟,然后转到第2页,并且由于排序顺序已经更改,因此他将得到错误的结果。
所以我认为,如果他来到我的网站,我会将所有ID都放在一个会话中,而当他进入第2页时,即使排序已经改变,他也会得到正确的记录。
还有其他更好的方法吗?
答案1
小编典典您可以使用ORDER
BY和FIELD函数。见http://lists.mysql.com/mysql/209784
SELECT * FROM table ORDER BY FIELD(ID,1,5,4,3)
它使用Field()函数,该函数根据文档“返回str1,str2,str3,…列表中str的索引(位置)。如果找不到str,则返回0”。因此,实际上您是根据该函数的返回值(即给定集中字段值的索引)对结果集进行排序。
Mysql SQL DELETE JOIN按特定顺序(由于限制)
如何解决Mysql SQL DELETE JOIN按特定顺序(由于限制)?
是否可以按特定顺序从不同的表中删除?
我需要删除
DELETE t1,t2,t3
FROM T1
LEFT JOIN T2 on t2.id =t1.t2_id
LEFT JOIN T3 on t3.id =t1.t3_id
但由于数据库中的限制,只能按此顺序 (t1>t2>t3
)。
有时似乎没有遵循顺序。
解决方法
您可以暂时禁用外键检查
SET FOREIGN_KEY_CHECKS=0;
DELETE t1,t2,t3
FROM T1
LEFT JOIN T2 on t2.id =t1.t2_id
LEFT JOIN T3 on t3.id =t1.t3_id
SET FOREIGN_KEY_CHECKS=1;
Mysql中设置指定IP的特定用户及特定权限
创建用户:
格式:grant select on 数据库.* to 用户名@登录主机 identified by ''密码''
举例:
例 1:增加一个用户 test1 密码为 abc,让他可以在任何主机上登录,并对所有数据库有
查询、插入、修改、删除的权限。首先用以 root 用户连入 MySQL,然后键入以下命令:
grant select,insert,update,delete on *.* to root@localhost identified by ''mysql'';
或者
grant all privileges on *.* to root@localhost identified by ''mysql'';
然后刷新权限设置。
flush privileges;
例 2:如果你不想 root 有密码操作数据库“mydb”里的数据表,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to root@localhost identified by '''';
#注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。
如果想远程登录的话,将"localhost"改为"%",
表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
2、修改密码

用UPDATE直接编辑user表
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD(''newpass'') WHERE user = ''root'';
mysql> FLUSH PRIVILEGES;
在丢失root密码的时候,可以这样
mysqld_safe --skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user=''root'';
mysql> FLUSH PRIVILEGES;

3、修改登录的ip,让那个ip可以登录
数据库可以远程连接或者说用IP地址可以访问

可能是你的帐号不允许从远程登陆,只能在localhost。
这个时候只要在localhost的那台电脑,登入mysql后,
更改 "mysql" 数据库里的 "user" 表里的 "host" 项,
从"localhost"改称"%"
mysql -u root -p
mysql>use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO ''root''@''192.168.1.100'' IDENTIFIED BY ''password'' WITH GRANT OPTION;
mysql> flush privileges; #刷新数据库(不要然,重启才可以看到效果)
mysql> select host, user from user; #查看

4. 删除用户
@>mysql -u root -p
@>密码
mysql>Delete FROM user Where User=''test'' and Host=''localhost'';
mysql>flush privileges;
mysql>drop database testDB; //删除用户的数据库
删除账户及权限:>drop user 用户名@''%'';
>drop user 用户名@ localhost;
5. 列出所有数据库
mysql>show database;
6. 切换数据库
mysql>use ''数据库名'';
7. 列出所有表
mysql>show tables;
8. 显示数据表结构
mysql>describe 表名;
9. 删除数据库和数据表
mysql>drop database 数据库名;
mysql>drop table 数据表名;
10.表操作
备注:操作之前使用“use <数据库名>”应连接某个数据库。
建表
命令:create table <表名> (<字段名 1> <类型 1> [,..<字段名 n> <类型 n>]);
例子:
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default ''0'',
> degree double(16,2));
获取表结构
命令: desc 表名,或者show columns from 表名
例子:
mysql> describe MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
删除表
命令:drop table <表名>
例如:删除表名为 MyClass 的表
mysql> drop table MyClass;
插入数据
命令:insert into <表名> [( <字段名 1>[,..<字段名 n > ])] values ( 值 1 )[, ( 值 n )]
例子:
mysql> insert into MyClass values(1,''Tom'',96.45),(2,''Joan'',82.99), (2,''Wang'', 96.59);
查询表中的数据
查询所有行
mysql> select * from MyClass;
查询前几行数据
例如:查看表 MyClass 中前 2 行数据
mysql> select * from MyClass order by id limit 0,2;
或者
mysql> select * from MyClass limit 0,2;
删除表中数据
命令:delete from 表名 where 表达式
例如:删除表 MyClass 中编号为 1 的记录
mysql> delete from MyClass where id=1;
修改表中数据
命令:update 表名 set 字段=新值,... where 条件
mysql> update MyClass set name=''Mary'' where id=1;
在表中增加字段
命令:alter table 表名 add 字段 类型 其他;
例如:在表 MyClass 中添加了一个字段 passtest,类型为 int(4),默认值为 0
mysql> alter table MyClass add passtest int(4) default ''0''
更改表名
命令:rename table 原表名 to 新表名;
例如:在表 MyClass 名字更改为 YouClass
mysql> rename table MyClass to YouClass;
更新字段内容
命令:update 表名 set 字段名 = 新内容
update 表名 set 字段名 = replace(字段名, ''旧内容'', ''新内容'');
例如:文章前面加入 4 个空格
update article set content=concat('' '', content);
原文https://www.cnblogs.com/lemon-flm/p/7597879.html
Mysql入门MySQL按照汉字的拼音排序简单实例
《MysqL入门MysqL按照汉字的拼音排序简单实例》要点:
本文介绍了MysqL入门MysqL按照汉字的拼音排序简单实例,希望对您有用。如果有疑问,可以联系我们。
如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了).MysqL数据库
直接在查询语句后面 添加 order by name asc; 查询结果依照姓氏的升序排序;MysqL数据库
如果存储姓名的字段采用的是 utf8字符集,需要在排序的时候对字段进行转码;对于的代码是 order by convert(name using gbk) asc; 同样,查询的结果也是依照姓氏的升序排序;MysqL数据库
以上这篇MysqL依照汉字的拼音排序简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小编PHP.MysqL数据库
欢迎参与《MysqL入门MysqL按照汉字的拼音排序简单实例》讨论,分享您的想法,小编 jb51.cc为您提供专业教程。
mysql多个值排序,类似置顶
mysql排序
mysql 指定多个值排序,类似置顶。请高手指教,谢谢!!
有个表mytb
id name
1 oop
2 vs
3 ui
4 lli
要实现效果:
指定2排第一,4排第二,其他的降序或者升序。
2 vs
4 lli
1 oop
3 ui
或者
2 vs
4 lli
3 ui
1 oop
请问怎样实现,谢谢!只有1币,请不要介意。。。。
今天关于MySQL按特定ID值排序和mysql按指定值排序的介绍到此结束,谢谢您的阅读,有关Mysql SQL DELETE JOIN按特定顺序(由于限制)、Mysql中设置指定IP的特定用户及特定权限、Mysql入门MySQL按照汉字的拼音排序简单实例、mysql多个值排序,类似置顶等更多相关知识的信息可以在本站进行查询。
本文标签: