我遇到了以下问题:
我的表格“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
但它不起作用。有什么想法吗?
答案 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_WS
或CONCAT
是连接字符串的MySQL函数。前者允许您定义分隔符,即您的案例中的空格。