【问题标题】:IN operator not working with string valuesIN 运算符不使用字符串值
【发布时间】:2016-03-25 21:16:21
【问题描述】:

我正在使用以下查询来过滤表中的记录:

SELECT * FROM teacher_info WHERE teaching_locations in ('Salt Lake City');

即使我在teaching_locations 列的表中存储了以下值,它也会返回一个空结果:newyork,Salt Lake City,los angeles

我尝试过使用其他值,并且它可以与其他值一起正常工作,但中间有空格的值除外。例如,如果列值为“newyork”,则查询工作正常。

【问题讨论】:

  • 您的查询对我来说很好。 sqlfiddle.com/#!9/2f11a/2
  • 有一个相关问题可能对您有用 - useful question
  • 当您在单个列中存储多个值时会发生这种情况——这不是关系方式。使用联结表,您的查询会更简单、更快捷。

标签: mysql sql select in-operator find-in-set


【解决方案1】:

使用 FIND_IN_SET() 代替 IN 运算符。

试试这个:

SELECT * 
FROM `teacher_info` 
WHERE FIND_IN_SET('Salt Lake City', teaching_locations);

【讨论】:

  • 如果有多个值怎么办?例如我想在 Teaching_locations 中找到新泽西、纽约和盐湖城
猜你喜欢
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
  • 2014-06-12
  • 1970-01-01
  • 2016-04-01
相关资源
最近更新 更多