如果存在,则在一列中查找字符串,而不是在单个mysql查询中在其他列中查找该值

如果存在,则在一列中查找字符串,而不是在单个mysql查询中在其他列中查找该值,mysql,mysqli,Mysql,Mysqli,我在数据库中有3列,有20000条记录 让我们举个例子 id | country_string | country_code<br> 275| Bangalore,BLR-India | BLR<br> 375| Basongo,BAN | BAN 我有一张唱片。我在查BLR。首先,它应该匹配country_code列(如果有),然后它将返回记录,否则它应该在country_字符串中搜索。它应该在单个查询中 若我使用LIKE查询,我

我在数据库中有3列,有20000条记录

让我们举个例子

id | country_string       |  country_code<br>
275| Bangalore,BLR-India  |  BLR<br>
375| Basongo,BAN          |  BAN
我有一张唱片。我在查BLR。首先,它应该匹配country_code列(如果有),然后它将返回记录,否则它应该在country_字符串中搜索。它应该在单个查询中

若我使用LIKE查询,我搜索BAN,它会给出两条记录,但它应该是记录号375,搜索bang应该是记录号275

提前谢谢

你可以用LIKE来做这件事

质疑


375 | Basongo,BAN | BAN,我还有一条记录,因为我告诉它应该首先在country|u code列中搜索。如果我同意你的查询,我将禁止搜索,它将给出两条记录,但在这种情况下,我只需要记录号375。@user2980414你可以使用If条件……如果国家/地区代码中的$search为空,则使用另一个字段搜索,如果不执行该查询……我希望这对you@user2980414:在所有显示的行中都是相同的吗country_字符串中的country_代码前面有一个逗号?@user2980414:那么您可以在country_字符串中的关键字前面添加一个逗号。我已经更新了我的答案,我知道了,伙计。我已经更新了我的答案。你只要试一下,然后给我反馈。嘿,伙计,你告诉我你需要在两列中搜索3个字母的关键字,现在你用4个字母搜索。这是什么?你必须恰当地提到这个问题。
SELECT * FROM tableName
WHERE country_code LIKE '%BAN%'
OR country_string LIKE '%,BAN%';
select * from table where 
country_code like '%$search_name%' 
OR country_string like '%$search_name%'