我的MySQL-Table包含混合字母和书写方向的内容。我想获得每行字母顺序的第一个字母。
Enumerable.Range(start, end - start)
结果:
SELECT
term,
left(term, 1)
FROM
terms
正如你所看到的那样,无论是阿拉伯语还是拉丁语 left 都是正确的第一个字母,这是最左边的,或者在阿拉伯语的情况下,最正确的一个。在混合术语的情况下,它优先考虑拉丁语部分并从左到右阅读,而我想要相反并获得最正确的角色。 (我不能tka最正确的角色,因为在纯阿拉伯语和纯拉丁语中我会得到最后一个角色)。
因此预期结果应为
'H مشبك ملتوي ذو شكل', 'H'
'م' , 'مكعّب فسيفساء'
'H Word', 'H'
我认为可能有一个技巧可以解决这个问题,但也许有些人之前遇到过这个问题而且知道一些问题:)
任何想法?提前谢谢!
编辑:创建如下的测试数据:
'H مشبك ملتوي ذو شكل'
-> 'م'
'م' , 'مكعّب فسيفساء'
'H Word', 'H'
答案 0 :(得分:1)
您可以尝试以下操作。如果最后一个字符不是拉丁字符,那么它会带来阿拉伯语的第一个字符(最后一个),否则它会带来拉丁语的第一个字符(第一个字符)。但请注意,如果最后一个字符是数字字符,则必须检查记录。
SELECT term, IF(TRIM(term) NOT RLIKE '[A-Z]$', RIGHT(TRIM(term), 1), LEFT(TRIM(term), 1)) AS first_char
FROM terms;
答案 1 :(得分:0)
您撰写的查询与我合作private class ButtonHandler implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
if(checkboxcheck1 == 1)
{
textFieldSum.setText(String.valueOf(counter));
}
else if (checkboxcheck2 == 1)
{
textFieldSum1.setText(String.valueOf(counter1));
}
else if (checkboxcheck1 == 1 && checkboxcheck2 == 1)
{
//do something
}
else
{
checkboxcheck1 = 0;
}
}
你没有问题
我所期望的插入数据的问题,
我的意思是:
您的文字left (term, 1)
在开头已经有'H مشبك ملتوي ذو شكل'
字符。
但是你想要的正确字符串必须是这样的:H