Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

กำลังค้นหาค่าต่ำสุดและสูงสุดจากสตริงที่มีตัวเลขคั่นด้วยยัติภังค์ใน MySQL หรือไม่


ใช้ฟังก์ชัน MIN() ร่วมกับ SUBSTRING() สำหรับค่าต่ำสุด ในขณะที่ MAX() สำหรับค่าสูงสุด ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> ค่า varchar(100) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.76 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable(Value) ('10-20'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า DemoTable(Value) ('200-100'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า DemoTable(Value) ('780-235'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.29 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----+---------+| รหัส | ความคุ้มค่า |+----+---------+| 1 | 10-20 || 2 | 200-100 || 3 | 780-235 |+----+---------+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อค้นหาค่า MIN() และ MAX() จากสตริงย่อยตัวเลขที่แยกจากสตริงที่มียัติภังค์ -

mysql> เลือก min(SUBSTRING_INDEX(Value, '-', 1)), -> max(SUBSTRING_INDEX(Value, '-', -1)) -> จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------------------------------------------+--------- ------------------------------+| min(SUBSTRING_INDEX(ค่า, '-', 1)) | max(SUBSTRING_INDEX(ค่า, '-', -1)) |+------------------------------------------------ ----------------------------------------------------+| 10 | 235 |+------------------------------------------+--------- ------------------------------------ +1 แถวในชุด (0.04 วินาที)