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

จะเลือกเฉพาะค่าที่ไม่ใช่ตัวเลขจากคอลัมน์ varchar ใน MySQL ได้อย่างไร


คุณต้องใช้ REGEXP สำหรับสิ่งนี้ ไวยากรณ์มีดังนี้

เลือก *จาก yourTableName โดยที่ yourColumnName REGEXP '[a-zA-Z]';

เพื่อให้เข้าใจแนวคิด ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้

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

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

mysql> แทรกลงในค่า SelectNonNumericValue(UserId) ('123John');Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงในค่า SelectNonNumericValue(UserId) ('58475Carol98457Taylor24'); Query OK, 1 แถวได้รับผลกระทบ ( 0.52 วินาที) mysql> แทรกลงในค่า SelectNonNumericValue (UserId) ('199575Sam124'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า SelectNonNumericValue (UserId) ('Mike2456'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.14 วินาที) mysql> แทรกลงในค่า SelectNonNumericValue (UserId) ('1000'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า SelectNonNumericValue (UserId) ('1001'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.21 วินาที) mysql> แทรกลงในค่า SelectNonNumericValue (UserId) ('10293Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า SelectNonNumericValue (UserId) ('David'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.30 วินาที) mysql> แทรกลงในค่า SelectNonNumericValue(UserId) ('2456'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+----+--------------------------------------+| รหัส | รหัสผู้ใช้ |+----+--------------------------------------+| 1 | 123จอห์น || 2 | 58475Carol98457Taylor24 || 3 | 199575Sam124 || 4 | Mike2456 || 5 | 1000 || 6 | 1001 || 7 | 10293บ๊อบ || 8 | เดวิด || 9 | 2456 |+----+--------------------------------------+9 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเลือกค่าที่ไม่ใช่ตัวเลข

mysql> เลือก *จาก SelectNonNumericValue โดยที่ UserId REGEXP '[a-zA-Z]';

ต่อไปนี้เป็นผลลัพธ์ที่ละเว้นค่าตัวเลข

<ก่อนหน้า>+----+--------------------------------------+| รหัส | รหัสผู้ใช้ |+----+--------------------------------------+| 1 | 123จอห์น || 2 | 58475Carol98457Taylor24 || 3 | 199575Sam124 || 4 | Mike2456 || 7 | 10293บ๊อบ || 8 | David |+----+-------------------------+6 แถวในชุด (0.00 วินาที)