D 为语法错误,B 中 and 表示 城市名即等于"New York"且又等于"Los Angeles"的记录,不符合题意,故正确答案为 AC。
在给定的选项中,要求查询数据库表 `t1` 中 `city` 字段为 "New York" 和 "Los Angeles" 的记录。我们来逐一分析各个选项:
A: `select * from t1 where city_name = "New York" or city_name = "Los Angeles";`
- 该语句使用了 `OR` 运算符,表示查询 `city_name` 为 "New York" 或 "Los Angeles" 的记录。语法正确且符合要求。
B: `select * from t1 where city_name = "New York" and city_name = "Los Angeles";`
- 该语句使用了 `AND` 运算符,表示查询 `city_name` 同时为 "New York" 和 "Los Angeles" 的记录。由于一个字段不可能同时具有两个不同的值,因此该语句不会返回任何结果。语法正确但不符合要求。
C: `select * from t1 where city_name in ("New York","Los Angeles");`
- 该语句使用了 `IN` 运算符,表示查询 `city_name` 在 "New York" 和 "Los Angeles" 之中的记录。语法正确且符合要求。
D: `select * from t1 where city_name in "New York" or "Los Angeles";`
- 该语句的 `IN` 运算符使用不正确,`IN` 后面应该跟一个列表,而不是单个字符串。该语句的语法错误,不符合要求。
综上所述,正确答案是:
A: `select * from t1 where city_name = "New York" or city_name = "Los Angeles";`
C: `select * from t1 where city_name in ("New York","Los Angeles");`