亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么在編碼中數據輸入“O-11”小于數據輸入“O-6”?

為什么在編碼中數據輸入“O-11”小于數據輸入“O-6”?

PHP
拉莫斯之舞 2022-06-11 10:04:11
我目前正在用 PHP 編寫單元管理系統。我有以下代碼:<?php   $result = mysqli_query($conn, "SELECT * FROM ranks WHERE grade_level <= "O-6" ORDER BY id ASC");      while($row = mysqli_fetch_array($result)) {         echo "<option value='".$row['id']."'>".$row['rank_name']."</option>";      }?>我希望它只顯示低于/包括上校 (O-6) 的軍銜,但它也顯示軍銜將軍 (O-10) 和陸軍將軍 (O-11)。我不知道為什么第二個數字沒有注冊,因此它的價值超過了個位數。對于谷歌的搜索算法,我的問題似乎也太寬泛了。
查看完整描述

2 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

您可以使用 MySQL 的SUBSTRING_INDEX函數來提取列的數字部分grade_level(在 的右側-)并對其進行測試:

SELECT * FROM ranks WHERE SUBSTRING_INDEX(grade_level, '-', -1) <= 6

dbfiddle 上的演示


查看完整回答
反對 回復 2022-06-11
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

如果要比較字符串右側的整數值,并且字符串始終以 2 字符為前綴O-


假設您使用的是 Sql-Server


SELECT * FROM ranks 

WHERE cast(right(grade_level, len(grade_level) -2) AS INT)  <=  

  cast(right("O-6", len("O-6") -2) as INT)  

ORDER BY id ASC


查看完整回答
反對 回復 2022-06-11
  • 2 回答
  • 0 關注
  • 157 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號