2013-04-25 38 views
2

如果表中某个特定字段正在尝试返回true或false(或yes/no等)值作为select的一部分包含一个子串。如果另一个字段包含字符串,则在mysql子查询中返回true或false

  1. 选择ID,姓名,以及是否订阅了某人。
  2. 一个名为emailList的字段有一个逗号分隔的名称列表,应该用来检查请求者是否被订阅。子字符串搜索的结果应该在另一个字段中产生真/假值。

基本的查询应该是这样的:

SELECT 
    id,<...>,name 
FROM 
    table 

在< ...>区,我想的东西相当于:

`emailList` contains @input ? "Yes" : "No" 

我无法弄清楚如何做到这一点来挽救我的生命。我猜测它可以通过其他方式完成,但这似乎是一个很好的学习机会。有什么建议么?

回答

8

使用IF()

SELECT 
    id, 
    IF(emailList LIKE '%string%', 'Yes', 'No') AS OnEmailList, 
    name 
FROM 
    table 

只是你正在寻找搜索字词或您所选择的服务器端编程语言的变量替换单词“串”。

+0

呃!谢谢。我发誓,除了最有创意的编程结构之外,我一直在寻找所有东西。 – Anthony 2013-04-26 03:04:33

相关问题