PDA

View Full Version : مشکل با Regex در sql



NIMA_1981
سه شنبه 22 بهمن 1392, 11:23 صبح
سلام دوستان من یک بانک mysql از فایل قران دارم حالا وقتی میخوام یک کلمه را جستجو کنم با مشکل مواجع میشوم

من یک پترن برای کلمه الله به این شکل ساختم

[اىآأإٱ][ً-ٰٓـ]*ل[ً-ٰٓـ]*ل[ً-ٰٓـ]*[هة][ً-ٰٓـ]*


این را هم اینجا تست کردم درست پیدا میکنه
116616

اما وقتی توی این دستور قرار میدم یک سری جواب اشتباه پیدا میکنه

SELECT * FROM quran_text WHERE TEXT REGEXP '[اىآأإٱ][ً-ٰٓـ]*ل[ً-ٰٓـ]*ل[ً-ٰٓـ]*[هة][ً-ٰٓـ]*' LIMIT 0 , 30

116617

با تشکر

sadegh1362
سه شنبه 22 بهمن 1392, 16:58 عصر
سلام
به نظر من شما اول داده را از دیتابیس بگیر و بعد با تابع preg در php چک کن و حتما قبلش در trim() بذارش .
چون بعضی وقتها می شه که کراکتر های فضای خالی باعث میشن داده ها درست برنگردن از دیتابیس

NIMA_1981
چهارشنبه 23 بهمن 1392, 10:47 صبح
مشکل این کار این هسن که سرعت جستجو پایین میاد - من میخوام جستجو با دستورات sql انجام بشه

sh.n.n786
چهارشنبه 23 بهمن 1392, 22:47 عصر
اینو تست کن

SELECT * FROM quran_text WHERE TEXT REGEXP '^[اىآأإٱ][ً-ٰٓـ]*ل[ً-ٰٓـ]*ل[ً-ٰٓـ]*[هة][ً-ٰٓـ]$' LIMIT 0 , 30

یا این


SELECT * FROM quran_text WHERE TEXT LIKE '%الله%' LIMIT 0 , 30