dsfds4551 2012-07-19 15:47
浏览 57

在逗号分隔字段上使用WHERE子句选择记录

I have a table myTable with 2 fields (4 example):

ID   Zip_Codes
===  =========
1    60148,60123,61034,61234
2    60122,61034

I want to use:

$zip = 61034;
$qry = "Select ID from myTable Where $zip in Zip_Codes";

Is that possible? What makes it fast? Other better solution?

  • 写回答

1条回答 默认 最新

  • douluokuang7184 2012-07-19 15:55
    关注

    You can't use IN here. x IN (1,2) is shorthand for x = 1 OR x = 2, it doesn't let you search inside a comma separated list.

    You can use FIND_IN_SET:

    SELECT ID FROM myTable WHERE FIND_IN_SET(61034, Zip_Codes);
    

    Though, you shouldn't have multiple values in one row. You should have one row per zip code.

    RowID   ID   Zip_Code
    =====   ===  =========
    1       1    60148
    2       1    60123
    3       1    61034
    4       1    61234
    5       2    60122
    6       2    61034
    

    (RowID would the primary key. You could add an INDEX to ID.)

    Then you can simply do:

    SELECT ID FROM myTable WHERE Zip_Code = 61034
    
    评论

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法