MySQL 大於小於比較問題

2021-08-20 11:38:17 字數 2261 閱讀 6941

drop

table

ifexists

`access_log`;

create

table

`access_log` (

`aid`

int(11) not

null auto_increment,

`site_id`

int(11) not

null

default

'0' comment '**id',

`count`

int(11) not

null

default

'0' comment '訪問次數',

`date`

date

notnull,

primary

key (`aid`)

) engine=innodb auto_increment=10

default charset=utf8;

insert

into

`access_log`

values ('1', '1', '45', '2016-05-10'), ('2', '3', '100', '2016-05-13'), ('3', '1', '230', '2016-05-14'), ('4', '2', '10', '2016-05-14'), ('5', '5', '205', '2016-05-14'), ('6', '4', '13', '2016-05-15'), ('7', '3', '220', '2016-05-15'), ('8', '5', '545', '2016-05-16'), ('9', '3', '201', '2016-05-17');

1.如果想去訪問次數大於45,小於150的**id,我想大多數會使用下面語句

select site_id,count

from

`access_log`

where

45<=count

<=150

結果為:

正確的語法為:

1.select site_id,count

from

`access_log`

where

45<=count

andcount

<=150

2.select site_id,count

from

`access_log`

where

count between 45

and150

結果為:

在其他語言中,例如:php

使用4<=$a

<=6來表示大於而且小於是不準確的,需要使用4

<=$a&&$a

<=6

sql between 操作符

between 操作符選取介於兩個值之間的資料範圍內的值。這些值可以是數值、文字或者日期。

請注意,在不同的資料庫中,between 操作符會產生不同的結果!

在某些資料庫中,between 選取介於兩個值之間但不包括兩個測試值的字段。

在某些資料庫中,between 選取介於兩個值之間且包括兩個測試值的字段。

在某些資料庫中,between 選取介於兩個值之間且包括第乙個測試值但不包括最後乙個測試值的字段。

因此,請檢查您的資料庫是如何處理 between 操作符!

1.日期使用

select * from access_log where

date between '2016-05-10'

and'2016-05-14'

或者 select * from

`access_log`

where

day(date) between 10

and14

當需要篩選月的時候可以用month(),年就用year()

結果如下:

mybatis大於小於的轉義

今天在寫 時,因為業務,需要在mybatis中,使用到大於號,小於號,所以就在sql中直接使用了。select from test where 1 1 and start date current date and end date current date 可是,在執行時,總報錯誤 error c...

Freemarker中大於小於的用法

1.if orderseq?has content orderseq val has content 判斷裡面有沒有值 2.freemarker中的比較運算子 判斷兩個值是否相等 不相等 gt 判斷左邊是否大於右邊 gte lt lte freemarker裡面不能包含 所以要用到大於和小於,就要用...

Mybatis大於小於符號的替換

在mybatis中,把一部分查詢的語句分離到了xml檔案中,因此在使用的時候不可以使用影響xml格式的一些符號,比如 之類的符號,因此要使用這些符號的替換符號。對照表如下 符號替換符號 例 原sql select from student where id 5 替換後 select from stu...