0

テーブルに。という名前の列がありますusers。このテーブルから行を取得する必要があります。

users列の値は次の形式です45br67br89br96。テーブルのusers列がbr(改行)によって内破されていることを意味します

列に特定の値が存在する場合は、テーブルの行を取得する必要があります。たとえば、ユーザーに89が含まれている行を取得する必要があります。

どうすればこれに対するクエリを書くことができますか?

4

3 に答える 3

1

MySQLLIKE演算子を使用します。指定された式(列のフィールドの値など)と指定されたパターンの単純な比較を実行します。あなたの場合、パターンはユーザーID(eg 89)であり、式は列名(users)です。

SELECT * FROM `my_table` WHERE `users` LIKE "%89%"

キャラクターは%とても便利です。ゼロ文字であっても、任意の数の文字に一致します。(もう1つは_-正確に1つの文字に一致します。)
上記はもちろん例です。PHPスクリプトで通常使用する場合は、パターンを変数として渡す必要があります。

<?php
$i_search_for = 89;
$query = 'SELECT * FROM `my_table` WHERE `users` LIKE "%' . $i_search_for . '%"';
?>

この講義もお勧めします:データベースの正規化

于 2012-05-28T10:44:31.893 に答える
0

すべてのユーザーIDを抽出するには、セルの値全体をクエリしてpreg_match_allを適用するだけです。

$str ="45br67br89br96";

preg_match_all('#([0-9])+#', $str, $array, PREG_PATTERN_ORDER);

$matches = $array[0];

foreach($matches as $var)
{    
   print($var." ");
}

出力:45 67 89 96

于 2012-05-28T09:55:11.017 に答える
0

あなたの質問を理解したら、値を調べてからユーザーを検索します。

そのようです:

$arr = explode("br", $users_value);
$row = array_search('89', $arr);
于 2012-05-28T09:55:42.540 に答える