sql >> データベース >  >> RDS >> Mysql

MySQLBlobフィールドから一部を選択します

    このクエリ:

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

    (このように分解したので読みやすくなりました)

    これにより、次のように出力されます:

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

    したがって、PHPでは次のことができます。

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

    注: mysqlの逆の単語を使用する場合は注意が必要です。これが、descriptionを使用する理由です。 代わりに。



    1. MySQLで16進値をバイナリとして保存する

    2. CRYPT_GEN_RANDOM()を使用して、SQLServerで暗号化されたランダム番号を作成します

    3. SQL-列の最大数を見つける方法は?

    4. xamppのインストール後にapacheを実行中にエラーが発生しました