0

我有一个带有一些记录的 mysql 数据库。我想获得这种类型的最后两条记录:

注意: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

你必须使用 OR not AND 像这样

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)从位置 4创建一个myvalue字段的子字符串,包含 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 回答