English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
إذا كنا نريد الحصول على بيانات تحتوي على بعض الأحرف في PostgreSQL، يمكننا استخدام LIKE الجملة.
في جملة LIKE، عادة ما يتم استخدامه مع Wildcards، Wildcards تمثل أي حرف، في PostgreSQL، هناك نوعين رئيسيين من Wildcards:
الرمز المئوي %
الخط السفلي _
إذا لم يتم استخدام هذين النوعين من الأWildcards، فإن جملة LIKE و = تنتج نفس النتيجة.
فيما يلي استخدام جملة LIKE مع الرمز المئوي % والخط السفلي _ النحو العام للتحقق من البيانات من قاعدة البيانات:
SELECT FROM table_name WHERE column LIKE 'XXXX%'; أو SELECT FROM table_name WHERE column LIKE '%XXXX%'; أو SELECT FROM table_name WHERE column LIKE 'XXXX_'; أو SELECT FROM table_name WHERE column LIKE '_XXXX'; أو SELECT FROM table_name WHERE column LIKE '_XXXX_';
يمكنك تعيين أي شرط في جملة WHERE.
يمكنك استخدام AND أو OR لتعيين بيانات متعددة.
XXXX يمكن أن يكون أي رقم أو حرف.
فيما يلي بعض الفروق بين % و _ في جملة LIKE:
المثال | الوصف |
---|---|
WHERE SALARY::text LIKE '200%} | ابحث عن بيانات SALARY تبدأ بـ 200. |
WHERE SALARY::text LIKE '%200%} | ابحث عن بيانات SALARY تحتوي على 200. |
WHERE SALARY::text LIKE '_00%} | ابحث عن بيانات SALARY تحتوي على 00 في الموضع الثاني والثالث. |
WHERE SALARY::text LIKE '2' %% | ابحث عن بيانات SALARY تبدأ بـ 2 وطولها أكبر من 3. |
WHERE SALARY::text LIKE '%2' | ابحث عن بيانات SALARY تنتهي بـ 2. |
WHERE SALARY::text LIKE '_2%3' | ابحث عن بيانات SALARY تحتوي على 2 في الموضع الثاني وتنتهي بـ 3. |
WHERE SALARY::text LIKE '2___3' | ابحث عن بيانات SALARY تبدأ بـ 2 وتنتهي بـ 3 وعددها 5 أرقام. |
في PostgreSQL،قيد LIKE يمكن استخدامه فقط للتحقق من الأحرف،لذلك في القائمة المذكورة أعلاه،يجب تحويل نوع البيانات الكامل إلى نوع بيانات الأحرف.
إنشاء جدول COMPANY (تحميل ملف SQL لـ COMPANY ),بياناتها كما يلي:
w3codeboxdb# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
下面示例将找出 AGE 以 2 开头的数据:
w3codeboxdb=# SELECT * FROM COMPANY WHERE AGE::text LIKE '2%';
得到以下结果:
id | name | age | address | salary ----+-------+-----+-------------+-------- 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall | 45000 7 | James | 24 | Houston | 10000 8 | Paul | 24 | Houston | 20000 (7 rows)
下面示例将找出 address 字段中含有 - 字符的数据:
w3codeboxdb=# SELECT * FROM COMPANY WHERE ADDRESS LIKE '%-%';
得到结果如下:
id | name | age | address | salary ----+------+-----+-------------------------------------------+-------- 4 | Mark | 25 | Rich-Mond | 65000 6 | Kim | 22 | South-Hall | 45000 (2 صفوف)