MySQL Select Query - รับเพียง 10 อักขระแรกของค่า


126

ตกลงนี่คือปัญหา

ฉันมีตารางที่มีคอลัมน์บางคอลัมน์และ 'หัวเรื่อง' เป็นหนึ่งในคอลัมน์ ฉันต้องการรับตัวอักษร 10 ตัวแรกจากฟิลด์ "หัวเรื่อง" ไม่ว่าฟิลด์ "หัวเรื่อง" จะมีสตริงที่มีตัวอักษร 100 ตัวก็ตาม

ตัวอย่างเช่น,

ตาราง - tbl. คอลัมน์ id- subject, value,

แบบสอบถาม SQL:

SELECT subject FROM tbl WHERE id ='$id';

ตัวอย่างเช่นผลลัพธ์ที่ฉันได้รับคือ

สวัสดีนี่เป็นเรื่องของฉันและเป็นอย่างไรบ้าง

ฉันต้องการอักขระ 10 ตัวแรกเท่านั้น

สวัสดีคุณ

ฉันเข้าใจว่าฉันสามารถลบอักขระที่เหลือโดยใช้ php substr () ได้ แต่ในกรณีของฉันไม่สามารถทำได้ ฉันต้องการลบอักขระส่วนเกินออกโดย MySQL จะทำได้อย่างไร?

คำตอบ:



43
SELECT SUBSTRING(subject, 1, 10) FROM tbl

ฉันรู้สึกว่านี่เป็นคำตอบที่สมบูรณ์มากขึ้นเนื่องจากLEFTอาจไม่ได้ระบุเฉพาะ (ใช่เช่นเดียวกับที่ OP) เกี่ยวกับการแยกที่ต้องเริ่มต้นสตริงกลาง
d8aninja

15

ลองดูที่LeftหรือSubstringถ้าคุณต้องการตัดให้มากขึ้น

Google และเอกสาร MySQL เป็นจุดเริ่มต้นที่ดี - โดยปกติแล้วคุณจะไม่ได้รับคำตอบที่อบอุ่นเช่นนี้หากคุณไม่ได้พยายามช่วยเหลือตัวเองก่อนที่จะถามคำถาม


4
ตัวอย่างน่าจะมีประโยชน์มากกว่านี้
Rocco The Taco

6
@RoccoTheTaco ฉันไม่เห็นด้วยอย่างยิ่ง - การโหวตลงของคุณรุนแรงมาก อ่านจุดแรกมากคือhttp://stackoverflow.com/questions/how-to-ask Have you thoroughly searched for an answer before asking your question?คำถามนี้ตอบได้อย่างง่ายดายด้วยการค้นหาโดย Google ที่ง่ายและรวดเร็ว ฉันไม่ได้ต้องการเพียงแค่ให้ OP คำตอบที่ผมต้องการที่จะแสดงให้รู้ว่าจะหาคำตอบ - มากมีประโยชน์มากขึ้นในความคิดของฉัน
Steve

13
ฉันเข้าใจสิ่งที่ @Steve พูด (เข้าท่า) แต่ฉันมาที่นี่จาก Google ใช่คำถามเดิมขี้เกียจ แต่ความจริงที่ว่าฉันไม่ต้องไปที่อื่นช่วยฉันได้ เป็นเรื่องดีที่ SO กำลังสร้างคลังคำตอบสำหรับคำถามง่ายๆเช่นนี้ ยังเท่ากับค่าโฆษณามากกว่า $ สำหรับ SO
sterfry68
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.