如何按列/字段值选择MySQL表中的行?

时间:2011-04-10 09:24:46

标签: php mysql

我有一个名为messages的表,其中包含带有类型文本的字段(电子邮件)。 例如,此字段值为(email@domain.com,example@any.net。notme @ yahoo.com,me @ yahoo.com)。 当我登录(me@yahoo.com)以显示只有(me@yahoo.com)值的邮件时,我想要的是什么。 怎么能用mysql& php?

1 个答案:

答案 0 :(得分:3)

SELECT * FROM MESSAGES WHERE EMAIL = 'me@yahoo.com';

但是EMAIL应该被编入索引以避免必须扫描整个表以查找匹配的行。类型TEXT可能是不必要的。电子邮件不可能超过100个字符,因此可能将类型设置为VARCHAR(100)或类似。

或者假设每个用户都有一个id,也许最好通过USER_ID(也应该被索引)将它们取出:

SELECT * FROM MESSAGES WHERE USER_ID = ?;

其中USER_ID是USER表中的ID或等效ID。