MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Temukan Nilai yang Tidak Mengandung Angka dalam SQL

Jika Anda memiliki kolom dalam tabel database yang berisi data karakter, tetapi beberapa baris juga berisi angka, Anda bisa menggunakan kueri SQL berikut untuk mengembalikan hanya baris yang tidak berisi angka di dalam nilai.

Sebenarnya, angka dapat diwakili oleh angka numerik, kata-kata dan simbol lainnya, tetapi untuk tujuan artikel ini, "angka" berarti "digit numerik". Jadi, kami menemukan nilai yang tidak mengandung angka numerik.

Kueri yang Anda gunakan akan bergantung pada DBMS Anda.

SQL Server

Di SQL Server, kita bisa menggunakan query seperti ini:

SELECT ProductName 
FROM Products
WHERE ProductName NOT LIKE '%[0-9]%';

Di sini, kami mengembalikan semua baris di mana ProductName kolom tidak mengandung angka numerik.

Oracle

Di Oracle, kita dapat menggunakan REGEXP_LIKE() fungsi:

SELECT ProductName
FROM Products 
WHERE NOT REGEXP_LIKE(ProductName, '[0-9]+');

Dalam hal ini kami menyediakan pola ekspresi reguler yang cocok dengan nilai yang tidak ingin kami kembalikan. Nilai sebenarnya cocok, tetapi kami juga meniadakan kecocokan dengan menggunakan NOT , yang berarti semua yang tidak cocok akan dikembalikan.

Cara lain untuk melakukannya adalah dengan menggunakan [:digit:] Kelas karakter POSIX:

SELECT ProductName
FROM Products 
WHERE NOT REGEXP_LIKE(ProductName, '[[:digit:]]');

MySQL

Di MySQL, kita dapat menggunakan NOT REGEX fungsi:

SELECT ProductName 
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';

Cara lain untuk menulisnya adalah seperti ini:

SELECT ProductName 
FROM Products
WHERE NOT (ProductName REGEXP '[0-9]+');

Atau kita bisa menggunakan [:digit:] Kelas karakter POSIX:

SELECT ProductName 
FROM Products
WHERE NOT (ProductName REGEXP '[[:digit:]]');

MariaDB

Di MariaDB, kita dapat menggunakan implementasi NOT REGEX fungsi:

SELECT ProductName 
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';

Cara lain untuk menulisnya adalah seperti ini:

SELECT ProductName 
FROM Products
WHERE NOT (ProductName REGEXP '[0-9]+');

Atau kita bisa menggunakan [:digit:] Kelas karakter POSIX:

SELECT ProductName 
FROM Products
WHERE NOT (ProductName REGEXP '[[:digit:]]');

PostgreSQL

Inilah cara kita melakukannya di Postgres:

SELECT ProductName 
FROM Products
WHERE ProductName !~ '[0-9]+';

SQLite

Di SQLite, kita bisa melakukan ini:

SELECT ProductName 
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';

Dalam SQLite, REGEXP operator adalah sintaks khusus untuk REGEXP() fungsi pengguna, jadi kita juga bisa melakukan hal berikut:

SELECT ProductName 
FROM Products
WHERE NOT REGEXP('[0-9]+', ProductName);

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bisakah Anda menentukan kunci untuk $addToSet di Mongo?

  2. MongoDB yang Dihosting Sendiri

  3. MongoDB $setIntersection

  4. Cara mengaktifkan logging untuk Mongoose dan driver MongoDB Node.JS

  5. Bagaimana cara meningkatkan kinerja operasi pembaruan di Mongo?