SQL查找字符串的一部分

时间:2018-01-20 12:48:12

标签: php sql string phpmyadmin web

我遇到了以下问题: 我的表格“gotoHeroes(hero: Hero) { let heroId = hero ? hero.id : null; // Pass along the hero id if available // so that the HeroList component can select that hero. // Include a junk 'foo' property for fun. this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]); } ngOnInit() { this.heroes$ = this.route.paramMap .switchMap((params: ParamMap) => { // (+) before `params.get()` turns the string into a number this.selectedId = +params.get('id'); return this.service.getHeroes(); }); ”包含列:“students”,“名称”和“id_student”。 然后我得到一个包含full_name的变量(例如:' James Bond ') 我需要创建一个选择surname'的查询,其中'name'和'surname'匹配整个名称。

我尝试过几种方式,比如:

'id_student

但它不起作用。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

您的代码应该在数据库中工作,其中+用于字符串连接。 LIKE很好,但=似乎已经足够了:

SELECT id_student
FROM students
WHERE CONCAT(name, ' ', surname) = full_name;

请注意,意外字符和拼写上的微小差异会导致比较失败。

答案 1 :(得分:0)

MySQL不支持使用plus进行字符串连接,至少在默认情况下不支持。相反,我们可以使用CONCAT函数。您想要的LIKE表达式是:

full_name LIKE 'James%Bond'

我们希望任何以James开头且以Bond结尾的记录。

SELECT id_student
FROM students
WHERE full_name LIKE CONCAT(name, '%', surname);

答案 2 :(得分:0)

也许你应该尝试类似的东西:

SELECT id_student 
FROM students
WHERE CONCAT_WS(" ", name, surname) 
LIKE full_name

CONCAT_WSCONCAT是连接字符串的MySQL函数。前者允许您定义分隔符,即您的案例中的空格。