คำถามติดแท็ก regular-expression

8
การจับคู่รูปแบบด้วย LIKE, SIMILAR TO หรือนิพจน์ปกติใน PostgreSQL
ฉันต้องเขียนคำถามง่ายๆที่ฉันไปหาชื่อของคนที่เริ่มต้นด้วย B หรือ D: SELECT s.name FROM spelers s WHERE s.name LIKE 'B%' OR s.name LIKE 'D%' ORDER BY 1 ฉันสงสัยว่าถ้ามีวิธีที่จะเขียนสิ่งนี้เพื่อให้มีประสิทธิภาพมากขึ้น ดังนั้นฉันสามารถหลีกเลี่ยงorและ / หรือlike?

1
การค้นหาแถวที่ไม่ใช่ ASCII จาก Postgres
ไม่[:ascii:]ทำงานในระดับ Postgres ที่ทั้งหมดหรือไม่ มันไม่ได้ระบุไว้ในความช่วยเหลือของพวกเขาแต่ฉันเห็นตัวอย่างในเว็บที่ใช้มัน ฉันมีฐานข้อมูล UTF-8 โดยมีการเปรียบเทียบและc_typ e en_US.UTF-8และรุ่น Postgres คือ 9.6.2 เมื่อฉันค้นหาแถวที่ไม่ใช่ ASCII เช่นนี้: select title from wallabag_entry where title ~ '[^[:ascii:]]'; ฉันจะได้รับทั้ง Unicode และไม่ใช่ Unicode สัญลักษณ์ (เอาท์พุทเต็มรูปแบบที่นี่ ): Сталинская правозащитница: мать Меленкова бабушка Настя Дневник НКВДиста Шабалина: Знает ли Москва положение на фронте? Бег по городу и поездка …

2
วิธีใช้ SUBSTRING โดยใช้ REGEXP ใน MySQL
ฉันมีสถานการณ์ต่อไปนี้ ฉันต้อง substring นิพจน์ปกติจากคำอธิบายการใช้ MySQL รายละเอียด: Lorem D9801 ipsum dolor sit amet ตำแหน่งที่ D9801 คือ REGEXP คำอธิบายข้อความที่แข็งแกร่งทุกข้อความมีเนื้อหาที่แตกต่างกัน แต่ regexp ของฉันควรมีลักษณะดังนี้: REGEXP 'D [[::]]] {4}' REGEXP มี "D" ที่จุดเริ่มต้นเสมอและ "xxxx" - 4 หลักที่ท้าย: Dxxxx ฉันรู้ว่า REGEXP จะส่งกลับเฉพาะค่าจริง / เท็จ แต่ฉันจะสร้างคิวรีเพื่อส่งคืนเฉพาะค่า 'D9801' ได้อย่างไร ฉันลองทำสิ่งนี้: SELECT SUBSTRING (description, LOCATE(REGEXP 'D[[:digit:]]{4}', description), 5) FROM …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.