我试图找到所有混合情况的结果。
例如,“ Abee”只会在搜索确切的案例时返回。
我已经在like '...'选项中进行了尝试,但尝试使用上层(但它似乎是为返回而不是查询)。
这是我正在传递的查询。
https://data.nasa.gov/resource/gh4g-9sfh.json?$where=name%20like%20%27%25Abee%25%27
在我的React应用程序中,该函数是:
onChangeSearch = async (e) => {
e.preventDefault();
const name = e.target.elements.name.value;
console.log('name: '+ name);
const url = `${API_URL}?$limit=${API_LIMIT}&$where=name like %27%25${name}%25%27`;
this.getData(url, 'meteorite');
}
const Form = props => (
<form onSubmit={props.onChangeSearch}>
<input type="text" name="name" placeholder="Name..." />
<button>Search</button>
</form>
);
无论用户输入的是“ ABEE”,“ abee”还是“ aBee”,我都会查询自己进行设置。
答案 0 :(得分:1)
首先使查询大写
const nameUpper = name.toUpperCase();
然后在名称参数上使用upper()
,因此将在名称属性为大写时对它们进行搜索。
const name = e.target.elements.name.value.toUpperCase();
const url = `${API_URL}?$limit=${API_LIMIT}&$where=upper(name) like%27%25${name}%25%27`;
答案 1 :(得分:0)
我想我找到了解决方法:
https://data.nasa.gov/resource/gh4g-9sfh.json?$limit=100&$where=upper(name)=%27ABEE%27
文档中包含一个不清楚的示例:
You can also use it within the $where parameter to do case-insensitive matches