問題1.mysql order by 排序 varchar 類型數據
數據庫表中 某個字段類型爲varchar
想用sql實現排序 超找出這個字段topN的值。
想到 用order by desc
SELECT * FROM testTable where fcode=40006 and fmotype='bu100101' order by fvalue desc limit 0,1012
14
1566
16
2425
25
27
這樣的情況。
數據庫應該是按照每位進行比較 得到的結果。
可以修改成
SELECT * FROM testTable where fcode=40006 and fmotype='bu100101' order by fvalue+0 desc limit 0,10
這樣就是按照 大小降序排列了
問題2.list 里加map的時候要(好像不屬於mysql了)List list=new Arraylist();
MySQL字符串前後補0
前補0(LPAD)
- select LPAD(uid, 8, 0),username from uc_members where uid = '100015'
結果:uid: 00100015 username:guxiaochuan
後補0(RPAD)
- select RPAD(uid, 8, 0),username from uc_members where uid = '100015'
結果:uid: 10001500 username:guxiaochuan
length: 是計算字段的長度一個漢字是算三個字符,一個數字或字母算一個字符
CHAR_LENGTH(str) 返回值爲字符串str 的長度,長度的單位爲字符。一個多字節字符算作一個單字符。對於一個包含五個二字節字符集, LENGTH()返回值爲 10,而CHAR_LENGTH()的返回值爲5。
CHARACTER_LENGTH(str) CHARACTER_LENGTH()是CHAR_LENGTH()的同義詞。
BIT_LENGTH(str) 返回2進制長度.
- SELECT * FROM admin WHERE LENGTH(username) < 6
SELECT c.dt_dm AS dtdm,
c.dt_mc AS dtmc,
c.dt_position_j AS j,
c.dt_position_w AS w,
c.dt_adress AS adress,
c.dt_phone AS phone,
c.dt_bz,
c.dt_ms
FROM `nf_bsdt_dtxx` c WHERE c.`sj_xzqh`<span style="color:#ff6666;"> LIKE CONCAT(REPLACE(RTRIM(REPLACE(#{city},'0',' ')),' ','0'),"%" )</span>
< |
< |
小於號 |
> |
> |
大於號 |
& |
& |
和 |
' |
’ |
單引號 |
" |
" |
雙引號 |