SQL-server, magistrada joylashgan barcha ustunlarni toping

Menda stol bor:

Id int, 
Name varchar(10)

qiymatlari bilan:

(1, Nick), (2, Mike), (3, Eric)

Bir stringda joylashgan barcha nomlarni qaytarishni istayman. Misol uchun, "Nik, Mik" Nik va Mikeni qaytaradi.

Men LIKE bilan sinab ko'rdim, lekin u boshqa qatorni mag'lubiyatga ega qiymatlarni qaytarish bilan ishlaydi.

Men shunga o'xshash somthing umid qilgandim, lekin u aslida ishlaydi.

SELECT * FROM table
WHERE Name.isContained("Nick, Mike");

Natija:

1, Nick and 2, Mike
0
Siz hozirgacha nimani sinab ko'rdingiz? sizning namunangizda "... Mick" qaytib keladi, Mayk?
qo'shib qo'ydi muallif Abdul Rasheed, manba
Siz hozirgacha nimani sinab ko'rdingiz? sizning namunangizda "... Mick" qaytib keladi, Mayk?
qo'shib qo'ydi muallif Abdul Rasheed, manba
Siz hozirgacha nimani sinab ko'rdingiz? sizning namunangizda "... Mick" qaytib keladi, Mayk?
qo'shib qo'ydi muallif Abdul Rasheed, manba
faqat bitta satrda mag'lubiyatga ehtiyoj bormi?
qo'shib qo'ydi muallif Vijunav Vastivch, manba
faqat bitta satrda mag'lubiyatga ehtiyoj bormi?
qo'shib qo'ydi muallif Vijunav Vastivch, manba
faqat bitta satrda mag'lubiyatga ehtiyoj bormi?
qo'shib qo'ydi muallif Vijunav Vastivch, manba
Ha. Aslini olganda, qidiruv satrida mavjud bo'lgan substringlar tegishli bo'lgan o'yindir.
qo'shib qo'ydi muallif Mirt Hlaj, manba

6 javoblar

Buni ko'ring:

SELECT Name
FROM mytable
WHERE PATINDEX('%'+Name+'%', 'Nick, Mike') > 0

Demo bu yerda

2
qo'shib qo'ydi
Faqat mos keladigan o'yinlarni topa olmaydigan boshqa biron-bir orqa chiziqni kesib tashlang
qo'shib qo'ydi muallif Stephen, manba

Buni ko'ring:

SELECT Name
FROM mytable
WHERE PATINDEX('%'+Name+'%', 'Nick, Mike') > 0

Demo bu yerda

2
qo'shib qo'ydi
Faqat mos keladigan o'yinlarni topa olmaydigan boshqa biron-bir orqa chiziqni kesib tashlang
qo'shib qo'ydi muallif Stephen, manba

Buni ko'ring:

select name from tbl_sound where  SOUNDEX(`name`) like '%00%'
1
qo'shib qo'ydi

Namoyish. To'liq nomlarni topadi

create table demo (
    Id int, 
Name varchar(10));

insert demo
values
(1, 'Nick'), (2, 'Mike'), (3, 'Eric');

declare @prm varchar(200) = 'Nick,Mike,Ann';
select *  
from demo
where ','+ @prm +',' like '%,'+Name+',%'
;
0
qo'shib qo'ydi

Buni tekshiring.

        declare @tmp nvarchar(250)
        SET @tmp = ''
        select  @tmp = @tmp + concat(ID,' , ',name,' and ') 
        from table
        where Name in ('Nick','Mike')

        select SUBSTRING(@tmp, -2, LEN(@tmp))

OutPut:

enter image description here

0
qo'shib qo'ydi

Buni tekshiring.

        declare @tmp nvarchar(250)
        SET @tmp = ''
        select  @tmp = @tmp + concat(ID,' , ',name,' and ') 
        from table
        where Name in ('Nick','Mike')

        select SUBSTRING(@tmp, -2, LEN(@tmp))

OutPut:

enter image description here

0
qo'shib qo'ydi