sql >> Databasteknik >  >> RDS >> Mysql

Välj en del från ett MySQL Blob-fält

Denna fråga:

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

(Jag delade upp det så här så att det är lättare att läsa)

detta kommer att mata ut:

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

Så i din PHP kan du göra:

<?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

OBS: Jag ska vara försiktig med att använda mysql omvända ord, det är därför jag använder description istället.



  1. Databasdesign för att lagra chattmeddelanden mellan människor

  2. mysql2.so:libmysqlclient_r.so.15:kan inte öppna fil med delat objekt:Ingen sådan fil eller katalog

  3. Hämta datum mellan olika datumintervall

  4. Stort .patch_storage