寻找最有效的方法来查询Mysql中的多个电子邮件地址

时间:2013-11-14 17:00:37

标签: mysql sql

我正在寻找一种方法来选择joe的电子邮件地址,这样每次运行select查询时,我只会得到一个按ID顺序返回的电子邮件地址。有点圆罗宾的结果..

      so on first select I get joe@blogs.com 
      and then second I get joe@gmail.com
      and third joe@outlook.com
      and next joe@blogs.com as there are only three entries

如果你知道我的意思。

            addresses
            ---------------------
            id|name|email
            ---------------------
            1 |joe |joe@blogs.com
            2 |joe |joe@gmail.com
            3 |joe |joe@outlook.com

2 个答案:

答案 0 :(得分:1)

试一试:

CREATE TABLE #results (id INT, name VARCHAR(50), email VARCHAR(100))
DECLARE @currentID INT;

WHILE(1 = 1)
BEGIN
    SET @currentID =
    (SELECT TOP 1 t.id 
    FROM [YOURTABLE] t
    LEFT JOIN #results r
        ON r.id = t.id
    WHERE t.name = 'joe'
        AND r.id IS NULL)

    IF @currentID IS NULL
        BREAK;

    SELECT * FROM [YOURTABLE] WHERE id = @currentID 

    INSERT INTO #results
    SELECT TOP 1 t.id, t.name, t.email 
    FROM [YOURTABLE] t
    WHERE t.id = @currentID 
END

答案 1 :(得分:0)

我认为最好的方法是将下一个电子邮件ID存储在具有用户外键的字段中。这将为您提供使用数据库之间的最大互操作性。

请注意,如果删除电子邮件,您将遇到问题。