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

รับตัวเลขจากบันทึกใน MySQL หรือไม่


ใช้ฟังก์ชัน CONVERT() หรือ Regular Expression CONVERT() วิธีการแปลงค่าจากประเภทข้อมูลหนึ่งไปยังอีกประเภทหนึ่ง สิ่งนี้จะดึงตัวเลขมาให้เราโดยไม่ได้ตั้งใจ เรามาดูตัวอย่างกัน

ขั้นแรกเราจะสร้างตาราง

mysql> สร้างตาราง textIntoNumberDemo   -> (   -> ชื่อ varchar(100)   -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.47 วินาที)

กำลังแทรกบันทึกบางส่วน

mysql> แทรกลงในค่า textIntoNumberDemo ('John-11'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า textIntoNumberDemo ('John-12'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที )mysql> แทรกลงในค่า textIntoNumberDemo ('John-2'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า textIntoNumberDemo ('John-4'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) 

เพื่อแสดงรายการทั้งหมด

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

นี่คือผลลัพธ์

<ก่อนหน้า>+---------+| ชื่อ    |+---------+| John-11 || John-12 || จอห์น-2  || John-4  |+---------+4 แถวในชุด (0.00 วินาที)

ไวยากรณ์ในการดึงตัวเลข

เลือก yourColumnName,CONVERT(SUBSTRING_INDEX(yourColumnName,'-',-1),UNSIGNED INTEGER) AS  yourVariableNameFROM yourTableNameorder by yourVariableName;

ต่อไปนี้เป็นแบบสอบถาม

mysql> SELECT Name,CONVERT(SUBSTRING_INDEX(Name,'-',-1),UNSIGNED INTEGER) AS MyNumber   -> จาก textIntoNumberDemo   -> เรียงลำดับตาม MyNumber;

นี่คือผลลัพธ์

<ก่อนหน้า>+---------+----------+| ชื่อ    | MyNumber |+---------+----------+| จอห์น-2  | 2 || จอห์น-4  | 4 || John-11 | 11 || ยอห์น-12 | 12 |+---------+----------+4 แถวในชุด (0.00 วินาที)