• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    sql排序怎么11在2前面

    起首可以必定的是,之所以會呈現題目中的問題必然不是因為系統錯誤,有經驗的人員知道這是數據類型的原因,具體我將和大師一路闡發一下:

    東西/原料

    • mysql

    方式/步調

    1. 1

      第一步,建立測試表。起首在數據庫中新建一張測試表,字段包羅id(int、自增)、name(varchar),如下圖所示:

    2. 2

      第二步,添加數據。編寫sql語句進行添加數據,如:“INSERT INTO `sqltest`.`test` (`name`) VALUES ('諸葛亮'),('孫權'),('劉備'),('周瑜'),('關羽'),('賈詡'),('張飛'),('魯肅'),('郭嘉'),('曹操'),('龐統'),('呂蒙'),('司馬懿'),('呂布'),('夏侯淵')”,如下圖所示:

    3. 3

      第三步,int排序。編寫sql查詢,如“SELECT * FROM test ORDER BY id”,發現是正常排序沒有呈現如題所述環境,那就申明不是int類型數據問題,如下圖所示:

    4. 4

      第四步,點竄本家兒鍵。我們將本家兒鍵id的數據類型點竄為“varchar”,如下圖所示:

    5. 5

      第五步,varchar排序。依舊用步調三的查詢語句,發現呈現了如題所述環境,而呈現這種環境的原因是,sql在對varchar(char)類型排序時并不是按數值巨細排序,而是先對首位排序然后第二位、第三位……(以此類推下去),如下圖所示:

    6. 6

      第六步,解決方案。sql查詢時將varchar類型轉換為數字進行排序,如:“SELECT * FROM test ORDER BY (id-0)”,如下圖所示:

    注重事項

    • 本篇經驗所用數據庫為MySQL數據庫
    • 將varchar轉為數值類型的方式有良多,這里我只列出最簡潔的方式,別的,若是數據較年夜這種查詢方式可能會導致機能欠安,最好的法子是有一個特心猿意馬的字段用來排序(時候或者數值)
    • 發表于 2018-03-23 00:00
    • 閱讀 ( 1006 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆