جستجوی Like اما با نادیده گرفتن عددهایی که در اول متن وجود دارد
سوالات آزمون بصورت زیر در بانک ذخیره میشوند :
1)The first name
میخوام با جستجوی like مطلب مورد نظر رو پیدا کنم اما چون اول سوال عدد و پرانتز هستش مشکل دار شده. میشه لطفا بگید چطوری این عدد و پرانتز رو تو جستجو حذف کنم؟ البته عدد و سوالات از چپ نوشته میشه. که من نتونستم اینجا از چپ بنویسم
نقل قول: جستجوی Like اما با نادیده گرفتن عددهایی که در اول متن وجود دارد
سلام
بعد ازاینکه عبارت جستجو را پیدا کردی اون داخل یک متغییر استرینگ بریز و اینجوری عمل کن
string s = "hellwellcom";
MessageBox.Show(s = s.Remove(3,s.Length-3 )+s.Length.ToString());
1 ضمیمه
نقل قول: جستجوی Like اما با نادیده گرفتن عددهایی که در اول متن وجود دارد
نقل قول:
نوشته شده توسط
alexmcse
سلام
بعد ازاینکه عبارت جستجو را پیدا کردی اون داخل یک متغییر استرینگ بریز و اینجوری عمل کن
string s = "hellwellcom";
MessageBox.Show(s = s.Remove(3,s.Length-3 )+s.Length.ToString());
ممنون . ولی مشکل همون در پیدا کردن عبارت مورد نظره. لطفا به تصویر زیر دقت کن ببین آخرین فیلد ، فیلد سوالات هستش. ولی اول هر سوال عدد و پرانتز قرار داره. میخوام وقتی در تکس باکس اولین حرف سوال رو تایپ میکنه تا جایی که پرانتز هست خودکار نادیده گرفته بشه.
ضمیمه 102889
نقل قول: جستجوی Like اما با نادیده گرفتن عددهایی که در اول متن وجود دارد
فک کنم منظورت این باشه :
string s = "12345) DELETED !";
int i, temp = 0;
for( i=0;i<s.Length;i++)
if (s.Substring(i, 1) == ")")
{
temp = i+1;
}
MessageBox.Show(s = s.Remove(0,temp));
که بعد از این کار فقط عبارت بعد از پرانتز نشون داده میشه !
نقل قول: جستجوی Like اما با نادیده گرفتن عددهایی که در اول متن وجود دارد
نقل قول:
نوشته شده توسط
Amir_Developer
فک کنم منظورت این باشه :
string s = "12345) DELETED !";
int i, temp = 0;
for( i=0;i<s.Length;i++)
if (s.Substring(i, 1) == ")")
{
temp = i+1;
}
MessageBox.Show(s = s.Remove(0,temp));
که بعد از این کار فقط عبارت بعد از پرانتز نشون داده میشه !
ا تشکر از توجهتون .
اما این رشته رو شما از کجا آوردید و عددهای اولش رو حذف کردید؟ ما میخواهیم توی بانک اطلاعاتی رشته رو پیدا کنیم و نمیدانیم که اولش چه عددی نوشته شده؟ یعنی بنده در تکس باکس حرف D را تایپ میکنم تا رشته مورد نظر(ِDELETED) پیدا بشه.طبق تصویر بالا هر عددی ممکنه در اول رشته باشه پس باید اون عددها نادیده گرفته بشه و جستجو از حروف شروع بشه.
مثلا طبق تصویر بالا اگر بخواهم سوال شماره 19 رو جستجو کنم حرف I را باید تایپ کنم ولی بدلیل وجود عدد19و ( جستجو نتیجه یافت نمیشه.
نقل قول: جستجوی Like اما با نادیده گرفتن عددهایی که در اول متن وجود دارد
سلام.
توجه : حتما اعداد رو دو رقمی یا 3 رقمی ثبت کنید. مثلا به جای 1 بنویسید 01 یا 001 .(با توجه به تعداد سوالاتتون).
کوئری زیر مشکل شما رو حل میکنه و 3 کاراکتر اول رو حذف میکنه.(دو کاراکتر برای عدد و یکی هم برای پرانتز).
SELECT * FROM
(
SELECT * , SUBSTRING(FieldName,4,LEN(FieldName)-3) AS a1 FROM TblTest
) Sub where a1 like '%' + @word + '%'
منظور از word@ کلمه یا حرفی هست که کاربر تایپ کرده.
حواستون باشه که این کوئری تا سوال 99 رو جواب میده اگر سوالتون بیش از 99 تاست اعداد رو 3 رقمی وارد کنید مثلا 1 میشه 001 .
موفق باشید.
نقل قول: جستجوی Like اما با نادیده گرفتن عددهایی که در اول متن وجود دارد
نقل قول:
نوشته شده توسط
veniz2008
سلام.
توجه : حتما اعداد رو دو رقمی یا 3 رقمی ثبت کنید. مثلا به جای 1 بنویسید 01 یا 001 .(با توجه به تعداد سوالاتتون).
کوئری زیر مشکل شما رو حل میکنه و 3 کاراکتر اول رو حذف میکنه.(دو کاراکتر برای عدد و یکی هم برای پرانتز).
SELECT * FROM
(
SELECT * , SUBSTRING(FieldName,4,LEN(FieldName)-3) AS a1 FROM TblTest
) Sub where a1 like '%' + @word + '%'
منظور از word@ کلمه یا حرفی هست که کاربر تایپ کرده.
حواستون باشه که این کوئری تا سوال 99 رو جواب میده اگر سوالتون بیش از 99 تاست اعداد رو 3 رقمی وارد کنید مثلا 1 میشه 001 .
موفق باشید.
البته لزومی هم نداره اعداد دو رقمی یا سه رقمی ثبت شده باشند چون میشه توسط CHARINDEX اندیس پرانتز رو بدست آورد.
اگر میخواهید با حروف مورد نظر شروع بشه:
select *
from [Table-Name]
where SUBSTRING([Column-Name] ,CHARINDEX(')',[Column-Name])+1 , len([Column-Name])-CHARINDEX(')' , [Column-Name])) like 'I%'
یا
with t
as
(
select [COLUMNS] ,
CHARINDEX(')' , [Column-Name])+1 as chIndex
from [Table-Name]
)
select [COLUMNS]
from t
where SUBSTRING(t.[Column-Name] , t.chIndex , LEN(t.[Column-Name])-t.chIndex) LIKE 'a%'
[Column-Name] نام ستونی که متن سوال در آن است.