› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
Colorful
V2EX  ›  MySQL

mysql 多字段查询问题

  •  
  •   Colorful · Jul 5, 2020 · 3813 views
    This topic created in 2284 days ago, the information mentioned may be changed or developed.

    现在有 5 个字段要查询,固定的,如果单独的查询某一个字段,我会写,但是一次性查询 5 个字段就不太会了。 网上找了一些,但看得不是很懂

    问题是这样的 select * from 表

    a 字段,主要用来查城市名,可能会查询多个,字段的格式是这样的,深圳,广州(或者会有多个) b 字段,也是查询一个地名的,但是没有的时候,就查询所有 C 字段,用数字查询,查询 1 或者 2 这样的 D 字段,查询价格

    如果写成一条 sql 语句 就不会了,请教下各位大神。 mysql 是小白一名,在学习中。

    12 replies  •  2020-07-17 22:02:27 +08:00
    Colorful
        1
    Colorful  
    OP
       Jul 5, 2020
    a 字段,主要用来查城市名,可能会查询多个,字段的格式是这样的,深圳,广州(或者会有多个)
    b 字段,也是查询一个地名的,但是没有的时候,就查询所有
    C 字段,用数字查询,查询 1 或者 2 这样的
    D 字段,查询价格
    lgc007
        2
    lgc007  
       Jul 5, 2020   ❤️ 1
    select a,b,c,d from tablename where 条件
    Colorful
        3
    Colorful  
    OP
       Jul 5, 2020
    @lgc007 条件这块怎么写对应的字段啊?
    Erroad
        4
    Erroad  
       Jul 5, 2020
    你知道什么叫一条记录吗
    turan12
        5
    turan12  
       Jul 5, 2020
    select a,b,c,d from tablename where a='字符' and/or b=数字
    turan12
        6
    turan12  
       Jul 5, 2020   ❤️ 1
    抱歉,没看清题目。但我看了半天也没看懂楼主说的是啥意思 :p
    no1xsyzy
        7
    no1xsyzy  
       Jul 5, 2020
    a 可以拆开用多个 OR 拼
    c d 看上去没有任何复杂的部分
    b 的话,必须作两次查询(包括子查询),因为和 “全集” 有关,你不可能孤立看待某一行而知道这一查询参数如何处置,所以必然是两次查询,但子查询的话每次都得重新检查一遍 b0 是否在 b 里,严重效率浪费,所以建议还是先 select exists 验 b 是否存在,然后决定是否加上 b 这一条。
    然后 AND 拼接

    如果看不懂,就别勉强了。
    UFc8704I4Bv63gy2
        8
    UFc8704I4Bv63gy2  
       Jul 5, 2020 via Android   ❤️ 1
    v 站上都是什么人啊
    Colorful
        9
    Colorful  
    OP
       Jul 5, 2020
    @Erroad 真不懂
    ColoThor
        10
    ColoThor  
       Jul 6, 2020
    标点符号是不是没用好
    select * from 表 where a in (...) and ( b='' or b=#{b} ) and c=1 and d 条件
    ColoThor
        11
    ColoThor  
       Jul 6, 2020
    @ColoThor #10 select * from 表 where a in (...) and ( #{b}='' or b=#{b} ) and c=1 and d 条件
    Colorful
        12
    Colorful  
    OP
       Jul 17, 2020
    @ColoThor 看懂了,333Q
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2312 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 15:50 · PVG 23:50 · LAX 08:50 · JFK 11:50
    ♥ Do have faith in what you're doing.