2015-03-12 4 views
3

У меня есть ниже таблице:как искать одно значение из двух полей из 1 таблицы

id productname model  price color size 
1  mouse  m220  50  red 50 
2  keyboard k520  50  red 50 
3  mouse  mouse220 50  red 50 
4  pendive  p220  50  red 50 
5  laptopfan m220  50  red 50 

Теперь, когда я искать mouse m220, то он найдет все изделие в productname и model полей.

Теперь предположим, что я ищу mouse m220 тогда это даст мне следующий вывод:

id productname model  price color size 
    1  mouse  m220  50  red 50 
    3  mouse  mouse220 50  red 50 
    5  laptopfan m220  50  red 50 

Теперь, если предположим, что я ищу mouse, то это даст мне следующий вывод:

id productname model  price color size 
1  mouse  m220  50  red 50 
3  mouse  mouse220 50  red 50 

Так как я могу получить этот выход?

+1

Не совсем понятно, что вы хотите здесь. Вы выполняете поиск с «mouse m220» и должны возвращать две строки. Какая там логика? Это потому, что первое слово в вашем поиске было найдено в имени продукта? Почему не второе слово найдено в модели? Вы должны предоставить довольно небольшое объяснение тому, что вы действительно хотите здесь, прежде чем мы сможем многое сделать. –

+0

mysql или sql-server? Удалите ненужные теги. –

+0

@SeanLange См. При поиске 'mouse m220', тогда он найдет аналогичное слово% mouse m220% в обоих столбцах' productname' и 'model'. теперь снова, когда я вижу «мышь», тогда он будет искать как% mouse% в обеих колонках. Сообщите мне, если у вас есть какие-либо сомнения? – deepak

ответ

0

Это будет 2 простых запросов следующим образом:

В первом запросе вы хотите строки, которые ProductName равно «мышь» или строки, которые имеют модель, равную «М220». Это приведет к простому запросу следующим образом -

SELECT * FROM <TABLE_NAME> WHERE productname = "mouse" OR model = "m220"; 

Второго запрос еще проще. Вам просто нужны строки с именем продукта равным «мыши».

SELECT * FROM <TABLE_NAME> WHERE productname = "mouse"; 
1
declare @cta varchar(100),@cta1 as varchar(50),@cta2 varchar(50) 
    set @cta='mouse m220' 
    select @cta1=case when charindex(' ',@cta)>0 then substring(@cta,1,charindex(' ',@cta)) else @cta end ,@cta2=substring(@cta,charindex(' ',@cta)+1,(len(@cta)-charindex(' ',@cta)+1)) 


SELECT * FROM <TABLE_NAME> WHERE productname = @cta1 OR model = @cta2; 
+0

Да, он работает в mssql .. как я могу запустить в mysql? – deepak

+0

извините, у меня нет mysql, установленного прямо сейчас – nazark

Смежные вопросы