สำหรับค่าลบ ให้ใช้ reverse() ร่วมกับ concat() ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable632 ( histogramId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, histogramValue int, histogramImage text) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.78 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable632(histogramValue) (2); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable632 (histogramValue) (3) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.34 วินาที) mysql> แทรกลงในค่า DemoTable632(histogramValue) (-6); ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable632 (histogramValue) (-5); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก DemoTable632;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+-------------+----------------+-------------- -+| histogramId | histogramValue | histogramImage |+-------------+----------------+---------------- +| 1 | 2 | NULL || 2 | 3 | NULL || 3 | -6 | NULL || 4 | -5 | NULL |+--------------------------+----------------+---------------- +4 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามฮิสโตแกรมที่มีค่าลบ -
mysql> เลือก histogramId, histogramValue, CONCAT( REVERSE(RPAD(REPEAT('*', IF(histogramValue<0,-histogramValue,0)), 100, ' ')), REPEAT('*', IF( histogramValue<0,0,histogramValue)) )AS histogramImage จาก DemoTable632 เรียงตาม histogramId;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+-------------+----------------+-------------- -+| histogramId | histogramValue | histogramImage |+-------------+----------------+---------------- +| 1 | 2 | ** || 2 | 3 | *** || 3 | -6 | ****** || 4 | -5 | ***** |+-------------+------------------------------------ ----+4 แถวในชุด (0.00 วินาที)