sql >> Databáze >  >> RDS >> Mysql

Vyberte část z pole blob MySQL

Tento dotaz:

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

(Rozdělil jsem to takto, aby se to lépe četlo)

toto vypíše:

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

Takže ve vašem PHP můžete udělat:

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

POZNÁMKA: Budu opatrný při používání obrácených slov mysql, proto používám description místo toho.



  1. Zobrazte každou hodnotu pole DISTINCT pouze jednou pomocí smyčky

  2. Nastavení atributů připojení ODBC bez nutnosti psát kód

  3. Milisekundy v mém DateTime se při uložení na SQL Server změní

  4. Jak vynutit vyhodnocení poddotazu před připojením / posunutím na cizí server