Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL:periksa apakah suatu nilai terkandung dalam interval rentang

Anda harus memiliki dua tabel:satu untuk kolom, satu untuk rentang kolom. Dengan itu, kueri sederhana akan mengambil apa yang Anda butuhkan.

CREATE TABLE foo (
    foo_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (foo_id)
)
ENGINE=InnoDB;

CREATE TABLE foo_range (
    foo_id INT(10) UNSIGNED NOT NULL,
    column_from INT(10) UNSIGNED NOT NULL,
    column_to INT(10) UNSIGNED NOT NULL,
    INDEX foo_range_fk1 (foo_id),
    CONSTRAINT foo_range_fk1 FOREIGN KEY (foo_id) REFERENCES foo (foo_id)
)
ENGINE=InnoDB;

INSERT INTO foo(foo_id)
VALUES (1), (2), (3);

INSERT INTO foo_range(foo_id, column_from, column_to)
VALUES (1, 400, 500), (2, 45, 74), (2, 23, 25), (3, 12, 14), (3, 19, 21);

SELECT foo_id
FROM foo_range
WHERE 421 BETWEEN column_from AND column_to;

Dan, sebenarnya, tabel utama bahkan tidak diperlukan kecuali jika Anda ingin menyimpan data tambahan :)

Jika Anda terjebak dengan desain DB lain, Anda mungkin harus mengambil semua baris dan menggunakan bahasa sisi klien Anda untuk melakukan pencocokan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kode Kesalahan:1222. Pernyataan SELECT yang digunakan memiliki jumlah kolom yang berbeda

  2. Id acak di sqlalchemy (tiang)

  3. MySQL Kiri() atau SUBSTRING()?

  4. Buat tabel pesanan yang dikelompokkan berdasarkan user_id yang menjumlahkan jumlah produk

  5. Transaksi MySQL