Mysql 其中 = 'something' 用于搜索

Mysql where = 'something' for search

我需要这样写一个查询:

SELECT * FROM users WHERE user_name='somthing' ELSE WHERE user_name LIKE 'something%' ORDER BY user_name;

但是我不知道怎么写。

table如下:

id | user_name | frequency

第一条记录是

4 | fred | 1

所以当搜索 user_name = 'fred' 如果有完全匹配,显示最频繁的记录(最高频率值)否则如果没有完全匹配显示结果像 'fred'

我复制了一个例子。 link 是 http://www.peachpit.com/articles/article.aspx?p=1802754&seqNum=3

CREATE TABLE users
(
    id INT,
    user_name VARCHAR(255),
    frequency INT
);

INSERT INTO users
VALUES
(4,'fred',1),
(5,'fred',2),
(6,'frederick',1),
(7,'freddie',1),
(8,'freddie',2),
(9,'john',1);

(
    SELECT  *
    FROM    users
    WHERE   user_name = 'fred'
    ORDER BY Frequency DESC
    LIMIT   1
)

UNION

(
    SELECT  *
    FROM    users
    WHERE   user_name LIKE '%fred%' AND
            NOT EXISTS (
                            SELECT  *
                            FROM    users
                            WHERE   user_name = 'fred'
                            ORDER BY Frequency
                            LIMIT   1
                        )
)