0

いくつかのレコードを含む mysql データベースがあります。この種の最後の 2 つのレコードが必要です。

注: id フィールドは自動インクリメントですが、レコードが相互に一致しない場合があります。次のようになります。

ID MYVALUE
1  42-K0000001
2  42-K0000002
3  42-B0000001
4  42-B0000002

そして、42-KXXXXXXX と 42-BXXXXXX の最後のレコードを取得して、php 変数に渡したいと考えています。

私はこれを試しました:

mysql_query("SELECT myvalue from mydatabase WHERE myvalue LIKE %42-K% and myvalue LIKE %42-B% ORDER BY id DESC");

これはうまくいきますか:

 SELECT myvalue 
    FROM mydatabase 
    WHERE myvalue LIKE "k%" 
    ORDER BY id DESC 
    LIMIT x
UNION
SELECT myvalue 
    FROM mydatabase 
    WHERE myvalue 
    LIKE "b%" 
    ORDER BY id DESC 
    LIMIT x
4

2 に答える 2

2

このように AND ではなく OR を使用する必要があります

SELECT * myvalue from mydatabase WHERE myvalue LIKE '42-K%' OR myvalue LIKE '42-B%' ORDER BY id DESC

または MID と IN LIKE THIS を使用

SELECT *
FROM x
WHERE MID(myvalue, 4, 1) IN ('K', 'B')
ORDER BY id DESC

MID(myvalue, 4, 1)myvalueフィールドの 4 番目から 1文字の部分文字列を作成してください!

読みやすく、展開しやすい

于 2013-02-21T08:57:03.153 に答える
1

ANDを次のように置き換えますOR

SELECT * myvalue 
FROM mydatabase 
WHERE myvalue LIKE %42-K% 
    OR myvalue LIKE %42-B% 
ORDER BY id DESC
于 2013-02-21T08:57:06.743 に答える