cari

Rumah  >  Soal Jawab  >  teks badan

java - Mysql多条件批量查询

请教一个问题:mysql中,我查询语句
select * from tableA where name='test' and age='18';
然后我有一个name和age的list列表,分别通过这两个条件去查询,有什么比较方法可以查询;

eg:
select * from tableA where name='test' and age='18';
select * from tableA where name='test1' and age='18';
select * from tableA where name='test2' and age='20';
select * from tableA where name='test2' and age='56';
···

其中查出来的数据对应Java的一个实体。其中List表的大小为500-3000,数据表的记录为每天8万左右

怪我咯怪我咯2770 hari yang lalu995

membalas semua(6)saya akan balas

  • ringa_lee

    ringa_lee2017-04-18 09:37:24

    Buat pertanyaan paparan, yang akan menjadi lebih cekap. Sekurang-kurangnya lebih cepat sedikit daripada jadual sementara

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:37:24

    jadual A menambah lajur bernama nameage Nilai di dalamnya ialah gabungan nama dan umur Contohnya, test18
    pilih * dari jadualA di mana nama dalam ('test18','xxxxxx','xxxxxxx').

    Sudah tentu anda tidak perlu menambah lajur, anda juga boleh menulisnya dalam SQL sendiri

    balas
    0
  • 高洛峰

    高洛峰2017-04-18 09:37:24

    jawapan togeek sangat keren
    Kecekapan sql mungkin perlu dipertimbangkan semula

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:37:24

    select a.* 
    from tableA a
    inner join list l on l.name=a.name and l.age=a.age

    Tidak?

    balas
    0
  • 黄舟

    黄舟2017-04-18 09:37:24

    Apabila jumlah data tidak besar, anda boleh melakukan ini.

    SELECT * FROM tableA
    WHERE (name, age) IN (
    ('test', 18),
    ('test1', 18),
    ('test2', 20),
    ('test2', 56))

    Tetapi dengan menerangkan pertanyaan di atas, anda akan mendapati bahawa cara penulisan ini tidak boleh menggunakan indeks, jadi kecekapan pertanyaan adalah sangat rendah.

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:37:24

    select * from tableA where (name='test'and age='18')
    or (name='test1'and age='18')
    or (name='test2'and age='20')
    ...

    Buat jadual sementara dan sertai 2 medan dalam jadual sementara

    http://stackoverflow.com/ques...

    http://www.zhihu.com/question...

    balas
    0
  • Batalbalas