ดังที่คนอื่น ๆ ได้กล่าวไว้แล้ว REGEXP เรียกฟังก์ชันที่ผู้ใช้กำหนดซึ่งจะต้องกำหนดและโหลดลงในฐานข้อมูลก่อน บางทีการแจกแจง sqlite หรือเครื่องมือ GUI บางอย่างรวมไว้โดยค่าเริ่มต้น แต่การติดตั้ง Ubuntu ของฉันไม่ได้ วิธีแก้ปัญหาคือ
sudo apt-get install sqlite3-pcre
ซึ่งใช้นิพจน์ทั่วไป Perl ในโมดูลที่โหลดได้ใน /usr/lib/sqlite3/pcre.so
เพื่อให้สามารถใช้งานได้คุณต้องโหลดทุกครั้งที่คุณเปิดฐานข้อมูล:
.load /usr/lib/sqlite3/pcre.so
หรือคุณสามารถใส่บรรทัดนั้นลงในไฟล์ ~/.sqliterc
ไฟล์.
ตอนนี้คุณสามารถสอบถามดังนี้:
SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';
หากคุณต้องการสอบถามโดยตรงจากบรรทัดคำสั่งคุณสามารถใช้-cmd
สวิตช์เพื่อโหลดไลบรารีก่อน SQL ของคุณ:
sqlite3 "$filename" -cmd ".load /usr/lib/sqlite3/pcre.so" "SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';"
หากคุณใช้ Windows ฉันเดาว่าไฟล์. dll ที่คล้ายกันควรมีอยู่ที่ไหนสักแห่ง