Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chọn một phần từ Trường Blob MySQL

Truy vấn này:

SELECT 
  CONCAT(
    '...', 
    SUBSTR(`description`, 
      LOCATE('Nam rhoncus', `description`) - 10, 
      (LENGTH('Nam rhoncus') + 20)), 
    '...') AS `description`
FROM table 
WHERE `description` LIKE '%Nam rhoncus%';

(Tôi đã chia nhỏ nó như thế này để dễ đọc hơn)

điều này sẽ xuất ra:

...m auctor. Nam rhoncus, purus eg...

Vì vậy, trong PHP của bạn, bạn có thể làm:

<?php
define('CHAR_LEFT', 10);
define('CHAR_RIGHT', 10);
// db stuff
$search = mysql_real_escape_string($search_var);
$query = "SELECT CONCAT('...', SUBSTR(`description`, LOCATE('" . $search . "', `description`) - " . CHAR_LEFT . ", (LENGTH('" . $search . "') + " . (CHAR_LEFT + CHAR_RIGHT) . ")), '...') AS `description` FROM table WHERE `description` LIKE '%" . $search . "%';";
// then your request

LƯU Ý: Tôi hãy cẩn thận khi sử dụng các từ đảo ngược mysql, đây là lý do tại sao tôi sử dụng description thay vào đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL 8.0 - Máy khách không hỗ trợ giao thức xác thực do máy chủ yêu cầu; xem xét nâng cấp máy khách MySQL

  2. MySQL hoặc điều kiện

  3. MySQLi có xác minh chứng chỉ máy chủ theo mặc định khi sử dụng SSL không?

  4. Việc thêm 'LIMIT 1' vào các truy vấn MySQL có làm cho chúng nhanh hơn khi bạn biết rằng sẽ chỉ có 1 kết quả không?

  5. MySql:có thể 'SUM IF' hoặc 'COUNT IF' không?