SSMS
 sql >> база данни >  >> Database Tools >> SSMS

как да изберете ред с данни от поле за стойност, разделена със запетая

Никога не е добре да използвате стойностите, разделени със запетая, за съхраняване в базата данни, ако е възможно, опитайте се да направите отделни таблици, за да ги съхранявате, тъй като най-вероятно това е 1:n връзка.

Ако това не е осъществимо, тогава има следните възможни начини, по които можете да направите това. Ако броят на стойностите, които ще съвпадат, ще остане същият, тогава може да искате да направите поредица от Like израз заедно с OR/AND в зависимост от вашите изисквания.

Напр.-

WHERE
    Media LIKE '%21%'
    OR Media LIKE '%30%'
    OR Media LIKE '%40%' 

Въпреки това горната заявка вероятно ще улови всички стойности, които съдържат 21 така че дори ако колони със стойности като 1210 ,210 също ще бъдат върнати. За да преодолеете това, можете да направите следния трик, който пречи на производителността, тъй като използва функции в where клауза и това противоречи на правенето на Seargable запитвания. Но ето го,

--Declare valueSearch variable first to value to match for you can do this for multiple values using multiple variables.

Declare @valueSearch = '21'

-- Then do the matching in where clause
WHERE 
    (',' + RTRIM(Media) + ',') LIKE '%,' + @valueSearch + ',%'

Ако броят на съответстващите стойности ще се промени, тогава може да искате да разгледате FullText Index и вие трябва да мислите за същото. И ако решите да продължите с това след Fulltext Index можете да направите както следва, за да получите това, което искате,

Напр.-

WHERE 
     CONTAINS(Media, '"21" OR "30" OR "40"')


  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Персонализирайте шаблона за SSMS 2008 „Нова съхранена процедура“ по подразбиране

  2. BCP заявка от Azure VM:SQLState =37000, NativeError =40515 Препратка към база данни и/или име на сървър в „DBName.dbo.TableName“ не се поддържа

  3. Спрете изпълнението на SQL Server, докато не е необходимо

  4. Как да се свържете с LocalDb

  5. Не може да се свърже с Plesk v12 SQL Server отдалечено от SQL Server Management Studio