字符集很简单,但是数据的排序需要通过SQL语句来协助完成,ORDER BY 语句,代码如下:
// 假设你已经成功连接了数据库($mysqli变量假设为连接的资源句柄)// 通过对象方式设置字符编码
$mysqli -> set_charset('utf8');
// 通过函数方式设置字符编码
mysqli_set_charset($mysqli, 'utf8');
// 那么接下来是数据排序的话,需要编写一条SQL查询语句(DESC 倒序排列 | ASC 正序排列)
$sql = "SELECT `字段` FROM `表名` WHERE TRUE ORDER BY `字段` DESC;";
如果还有什么问题,欢迎追问~
Create Table T
(
id int,
St Varchar(100)
)
Insert Into T Values(1,'魂牵梦萦复方丹参 a草叶魂牵梦萦')
Insert Into T Values(2,'魂牵梦萦复方丹参 草叶a魂牵梦萦')
Insert Into T Values(3,'魂牵梦萦复方丹参 草叶b魂牵梦萦')
Insert Into T Values(4,'魂牵梦萦复方丹参 b草叶魂牵梦萦')
Insert Into T Values(5,'魂牵梦萦复方丹参 草叶魂牵abc梦萦')
Insert Into T Values(6,'魂牵梦萦复方丹参 草叶什么都没有魂牵梦萦')
--先按是否包含a/b排序(包含的在前面,不包含的在后面)
--再按a/b在字符串中出现的位置排序
Select From T
Order by Case When PATINDEX('%[ab]%',St)>0 Then 0 Else 1 End,PATINDEX('%[ab]%',St)
你说的这个应该属于日期类型(date)的吧,SQL里面的日期类型格式:2009-04-12
15:00
如果是这样的话就可以排序的;
你是不是在定义字段名的时候定义错了,你把它定义成veachar类型了,时间应该用date类型
如果你想排序我建议你在定义日期这字段的时候就用日期类型来定义它,然后在根据升序(ASC)和降序(DESC)来对它排序就可以了!
对于汉字的排序顺序,如果数据库字符集为ZHS16GBK/ZH16GBK,那么使用order by默认是按照汉字的拼音顺序进行排序的;如果为其他(如UTF8),那么汉字的排序是按照BINARY排序的
我的数据库和Myeclipse刚刚卸载了,所以没法帮你写!!!你自己想想吧,在数据库中直接排序成这样我还没有想到!这是将这个数据读出来在排序的方法。
这个需要先将A字段的字符拆分出来,可以按照“/”拆分,貌似可以直接用split("/')直接拆分,然后需要类型转换下,转成int类型,或者直接用int [] 来接收,既然已经拆分到数组里了,那么就可以用冒泡排序或者其他排序,从小到大排序了,排序之后需要在合并到一起!!!这只是一个思路或许还有其他方法。我说的可能有错误,希望见谅。
创建表:
create table test(str varchar(10));
insert into test values ('A1');
insert into test values ('A2');
insert into test values ('A10');
insert into test values ('A11');
insert into test values ('B1');
insert into test values ('B2');
insert into test values ('B10');
insert into test values ('B11');
执行:
select from test order by left(str,1),convert(substr(str,2,length(str)-1),SIGNED)结果:
排序规则指定表示数据集中每个字符的位模式。
排序规则还决定用于数据排序和比较的规则。SQL
Server
2005
支持在单个数据库中存储具有不同排序规则的对象,即
SQL
Server
数据库中每列都可以有各自的排序规则。对于非
Unicode
列,排序规则设置指定数据的代码页,从而指定可以表示哪些字符。
以上就是关于php中使用mysqli创建数据库的时候怎么指定字符集和排序规则全部的内容,包括:php中使用mysqli创建数据库的时候怎么指定字符集和排序规则、SQL如何按指定字符在字符串中的位置来排序、SQL2000里面字符串排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)