mysql_field_count的说明

mysql_field_count的说明,第1张

返回作用在连接上的最近查询的列数。该函数的正常使用是在mysql_store_result()返回NULL(因而没有结果集指针)时。在这种情况下,可调用mysql_field_count()来判定mysql_store_result()是否应生成非空结果。这样,客户端就能采取恰当的动作,而无需知道查询是否是SELECT(或类似SELECT的)语句。在这里给出的示例中,演示了完成它的方法。

返回表示结果集中列数的无符号整数。

注意:另一种可选的方法是,用mysql_errno(&mysql)替换mysql_field_count(&mysql)调用。在该情况下,无论语句是否是SELECT,你将直接从mysql_store_result()查找错误,而不是从mysql_field_count()的值进行推断。

1、单列排序

SELECT * FROM test1 ORDER BY date_time

默认升序,降序后面接"DESC"即可。

2、多列排序 

SELECT * FROM test1 ORDER BY `status`, date_time DESC

首先按`status`字段排序,若`status`相等,则按data_time排序。

3、自定义排序

SELECT * FROM test1 ORDER BY FIELD(`status`, 3, 2, 4, 1, 5), date_time DESC

使用"FIELD()"函数,可指定顺序。

4、其他条件排序

先按大于等于当前时间升序,再按小于当前时间降序,支持分页。

SELECT * FROM test1 ORDER BY date_time <NOW(), IF(date_time <NOW(), 0, date_time), date_time DESC

附加SQL脚本:

CREATE TABLE `test1` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT,

  `name` varchar(50) NOT NULL,

  `date_time` datetime NOT NULL,

  `status` int(5) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

INSERT INTO `test1` VALUES

(NULL, '测试1', '2018-03-05 11:09:00', 1),(NULL, '测试2', '2018-03-06 11:09:00', 1),(NULL, 'abc', '2018-03-07 11:09:00', 1), 

(NULL, 'def', '2018-04-08 11:09:00', 2),(NULL, '李某某', '2018-04-17 11:09:00', 1),(NULL, '饭某某', '2018-04-20 13:09:00', 2),

(NULL, '赵', '2018-04-20 01:09:00', 4),(NULL, '倩', '2018-04-28 11:09:00', 2),(NULL, 'andy', '2018-04-30 11:09:00', 1),

(NULL, 'tony', '2018-05-08 11:09:00', 4),(NULL, 'tom', '2018-05-07 11:09:00', 3),(NULL, 'bill', '2018-05-18 11:09:00', 3),

(NULL, 'james', '2018-06-07 11:09:00', 4),(NULL, 'anthony', '2018-06-18 11:09:00', 2),(NULL, '盖茨', '2018-04-21 11:09:00', 1),

(NULL, '部长', '2018-04-24 11:09:00', 4),(NULL, '李总', '2018-04-20 11:09:00', 5),(NULL, '张总', '2018-04-29 11:09:00', 2),

(NULL, '王总', '2018-04-19 11:09:00', 3),(NULL, '唐总', '2018-05-01 11:09:00', 2)

参考的这篇文档Mysql排序方式

mysql中的去除左空格函数:

LTRIM(str)

Returns

the

string

str

with

leading

space

characters

removed.

以下是代码片段:

复制代码

代码如下:

mysql>

SELECT

LTRIM('

barbar')

->

'barbar'

This

function

is

multi-byte

safe.

mysql中的去除右空格函数:

RTRIM(str)

Returns

the

string

str

with

trailing

space

characters

removed.

以下是代码片段:

复制代码

代码如下:

mysql>

SELECT

RTRIM('barbar

')

->

'barbar'

This

function

is

multi-byte

safe.

trim函数可以过滤指定的字符串:

完整格式:TRIM([{BOTH

|

LEADING

|

TRAILING}

[remstr]

FROM]

str)

简化格式:TRIM([remstr

FROM]

str)

Returns

the

string

str

with

all

remstr

prefixes

or

suffixes

removed.

If

none

of

the

specifiers

BOTH,

LEADING,

or

TRAILING

is

given,

BOTH

is

assumed.

remstr

is

optional

and,

if

not

specified,

spaces

are

removed.

以下是代码片段:

复制代码

代码如下:

mysql>

SELECT

TRIM('

bar

')

//默认删除前后空格

->

'bar'

mysql>

SELECT

TRIM(LEADING

','

FROM

',,barxxx')

//删除指定首字符

如',‘

->

'barxxx'

mysql>

SELECT

TRIM(BOTH

','

FROM

',,bar,,,')

//删除指定首尾字符

->

'bar'

mysql>

SELECT

TRIM(TRAILING

','

FROM

'barxxyz,,')

->

'barxxyz'

复制代码

代码如下:

mysql>

UPDATE

table

SET

`field`=TRIM(TRAILING

','

FROM

`FIELD`)

WHERE

WHERE

`FIELD`

LIKE

'%,'

This

function

is

multi-byte

safe.

替换数据库中字段的最后一个分页符

复制代码

代码如下:

UPDATE

[!db.pre!]ecms_news_data_1

SET

`newstext`=TRIM(TRAILING

'[!--empirenews.page--]'

FROM

`newstext`)

WHERE

id=585

SELECT

TRIM(TRAILING

'[!--empirenews.page--]'

FROM

`newstext`)

AS

newstex

FROM

[!db.pre!]ecms_news_data_1

WHERE

id=585


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8463761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存