在MySQL中使用strpos?

4

我不确定这是否是正确的mysql函数,但我想知道有没有人能帮助我解决这个问题

例如:

我使用的mysql具有以下这些值

id     name
1      house_home
2      movie_film
3      restaurant_food

如果我想找电影 movie ,则它应该得到值 movie_film

在这种情况下,strpos 函数是否是正确的函数?还是有其他方法?

$string = 'movie';
$query = $db->prepare("SELECT * FROM values WHERE name = ?";
$query->execute(array($string));
while($row = $query->fetch(PDO::FETCH_ASSOC)){
    echo $row['name']; //this should output movie_film
}

感谢您提前的帮助!


LIKE可能是你正在寻找的? - Cole Tobin
你将在MySQL中使用"like"查询。你将得到"movie_film"。 - Vaishu
为什么你在一个列中使用 house_home 而不是将 house 放在一个列中,将 home 放在另一个列中?字符串操作很慢。 - kba
3个回答

21

1
要进行字符串修剪,SQL 中的 TRIM() 函数并不能胜任此工作,因为它只能修剪指定的字符:https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_trim。相反,您需要使用 SUBSTRING() 函数:https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring。 - user151841

2
你可以在SQL中使用“LIKE”运算符。
SELECT * FROM values WHERE name LIKE '%?%'

1
请尝试使用LIKE运算符
SELECT * from values where name LIKE '%?%';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接